Struts2中的表单validation
页面包含如下所示的表单。
1)如果我插入以形成validate =“true” ,那么在页面加载后此表单提交请求到邮件操作(此时尚未创建validationxml)。
2)在validationxml之后(在具有动作的相同包装中),然后控制对该页面的请求的动作返回404页面。
我错过了什么?
validationxml
Please enter a user name Please enter your message
如果我不添加validation,那么一切都正常工作。
在struts.xml
/error404.jsp /main.jsp /main.jsp
INPUT
是Struts2提供的预定义结果之一;
基本上,如果您的Action发送的参数不正确(转换错误,如果您向"abc"
Integer
操作”变量发送"abc"
),或者未通过validation,则工作流拦截器将返回INPUT
结果并按照指定的路径在该Action的struts配置中。
您的问题是您没有为您的操作定义任何INPUT
结果,而您总是应该这样做。
您还可以将全局输入结果设置为后备,但要小心…通常,在INPUT
情况下您想要访问的页面与发送请求的页面相同。
如果是INPUT
结果,则不会执行Action方法(例如execute()
),因此如果您在该方法中加载公共数据(如选择框内容),则它将不再可用。
阅读此答案,以完全理解这意味着什么,以及如何使其工作:
-
validation失败时,我们如何重新填充控件
-
INPUT结果处理的详细工作流程