Как предотвратить повторную отправку формы при обновлении в Struts 1? [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как предотвратить повторную отправку формы при обновлении в Struts 1? [дубликат]

Сообщение Anonymous »

Я просмотрел ответы с той же проблемой, но нет ли в Struts способа по умолчанию, позволяющего предотвратить повторную отправку? Кроме того, в моем случае, если я сбрасываю поля формы, старые значения все равно сохраняются (но как они получают эти значения)?
У меня есть класс действия отправки:
public class QrcAction extends DispatchAction
{
public ActionForward waiverPage( final ActionMapping inMapping,
final ActionForm inForm,
final HttpServletRequest inRequest,
final HttpServletResponse inResponse )
{
QrcForm qrcForm = (QrcForm) inForm;
if ( StringUtils.isEmpty( qrcForm.getCustomerId() ) )
{
ActionMessages errors = getErrors( inRequest );
errors.add( IAppConstants.APP_ERROR, new ActionMessage( IPropertiesConstant.ERROR_INVALID_CUSTOMER_ID ) );
saveErrors( inRequest, errors );
return inMapping.findForward( IActionForwardConstant.QRC_SEARCH_CUSTOMER_PAGE );
}
qrcForm.setCustWaiverPojo( new CrmCustWaiverPojo() );
qrcForm.setRemarksPojo( new RemarksPojo() );
return inMapping.findForward( IActionForwardConstant.WAIVER_PAGE );
}

public ActionForward applyWaiver( final ActionMapping inMapping,
final ActionForm inForm,
final HttpServletRequest inRequest,
final HttpServletResponse inResponse )
{
String forward = IActionForwardConstant.WAIVER_PAGE;
QrcForm qrcForm = (QrcForm) inForm;
ActionMessages messages = getMessages( inRequest );
ActionMessages errors = getErrors( inRequest );
CrmuserDetailsDto userDto = (CrmuserDetailsDto) inRequest.getSession( false )
.getAttribute( IAppConstants.CRM_USER_OBJECT );

double waiverLimit = 0;
if ( StringUtils.isNotEmpty( userDto.getWaiverLimitAmmount() ) )
waiverLimit = Double.parseDouble( userDto.getWaiverLimitAmmount() );
if ( waiverLimit < qrcForm.getCustWaiverPojo().getWaiverAmount().doubleValue() )
{
errors.add( IAppConstants.APP_ERROR, new ActionMessage( IPropertiesConstant.ERROR_INVALID_WAIVER_LIMIT,
waiverLimit ) );
}
QrcFormHelper.validateWaiver( errors, qrcForm ); // validates pojo fields

if ( errors.isEmpty() )
{
// saving data to database
if ( success )
{
messages.add( IAppConstants.APP_MESSAGE, new ActionMessage( "success.msg.key" ) );
// resetting the form fields
qrcForm.setCustWaiverPojo( new CrmCustWaiverPojo() );
qrcForm.setRemarksPojo( new RemarksPojo() );
qrcForm.setSrTicketNo( null );
}
else
errors.add( IAppConstants.APP_ERROR, new ActionMessage( "error.msg.key" ) );
}
saveErrors( inRequest, errors );
saveMessages( inRequest, messages );
return inMapping.findForward( forward );
}
}

Вызов waiverPage() вызывается для отображения формы и передается в метод applyWaiver(). В applyWaiver() при успешном сохранении значений я сбрасываю поля формы и пересылаю их на ту же страницу. После отправки и получения успешного результата отображается сообщение и форма очищается, и после этого, если я обновлю ее снова, в базу данных будет сделана запись с теми же ранее введенными значениями.
Может ли быть какое-либо решение этой проблемы?
ОБНОВЛЕНИЕ:
waiver.jsp :



Goodwill


Process

Select Category


Please Select


Amount

Bill No.


Please Select
20140101
20140201
20140301
20140401


Ticket ID

Remarks





Подробнее здесь: https://stackoverflow.com/questions/266 ... n-struts-1
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»