why does struts reset my form after failed validation?

不想你离开。 提交于 2019-12-02 05:30:47

the reset() is used to clear the values previously entered...if u debug it and see then u'll come to know. eg ur entering 1 in the form and say submit and again come on the same form and enter 2 and submit again now what reset will do is it will clear 1 and now 2, and thus u get 2 in ur validate() part.

@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {

    //If Clear button click will set date as today and clear all other value
    //If Insert, update with validation as failure than not clear all value on the form, but only clear that wrong when validation (means skipp all value as true on the form and only clear value wrong)
    String actionName = request.getParameter("method");
    if(actionName!=null){
        if (actionName.equals(Enums.ActionName.CLEAR.getActionName())) {
            Date date = new Date();
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            this.setPublicationDay(dateFormat.format(date));
        }
        else{
            request.setAttribute("book", this);
        }
    }

    super.reset(mapping, request);
}

The solution is to move the display of the form to a different action than that used to forward. In my example, they are both the same.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!