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结果处理的详细工作流程