Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 在Struts 2中使用一个操作和多个JSP页面进行验证_Validation_Jsp_Struts2_Tiles_Struts2 Tiles Plugin - Fatal编程技术网

Validation 在Struts 2中使用一个操作和多个JSP页面进行验证

Validation 在Struts 2中使用一个操作和多个JSP页面进行验证,validation,jsp,struts2,tiles,struts2-tiles-plugin,Validation,Jsp,Struts2,Tiles,Struts2 Tiles Plugin,我有一个表格,其中有一个部分是我在更新整个表格时单独提交的评论 为了保持JSP的可管理性,我使用以下Struts 2操作: 主信息 添加资金注释 主信息 mainfotile显示主表单JSP页面。addFundingComment互动程序显示提交评论的表单 我的问题是如果验证失败,“输入”结果必须转到mainfo磁贴或addFundingComment磁贴,但我需要它转到与验证失败的表单对应的磁贴 我可以通过将addFundingCommentJSP代码放在mainfoJSP代码中,并使用显

我有一个表格,其中有一个部分是我在更新整个表格时单独提交的评论

为了保持JSP的可管理性,我使用以下Struts 2操作:


主信息
添加资金注释
主信息
mainfo
tile显示主表单JSP页面。
addFundingComment
互动程序显示提交评论的表单

我的问题是如果验证失败,
“输入”
结果必须转到
mainfo
磁贴或
addFundingComment
磁贴,但我需要它转到与验证失败的表单对应的磁贴

我可以通过将
addFundingComment
JSP代码放在
mainfo
JSP代码中,并使用
显示我想要的表单来解决这个问题,但我认为有两个单独的JSP文件使每个文件更易于管理和调试

我想使用一个
Action
,以便在用户提交评论时更轻松地保持所有
mainfo
字段的更改


有没有办法让一个
操作
一起转到不同的JSP页面,并将验证失败返回到相应的JSP页面?

您可以使用动态结果配置返回相应的视图。动态属性是通过OGNL计算的,因此您必须创建一个getter方法来返回
输入的位置

<result name="input" type="tiles">${inputName}</result>

听起来你把两种不同的行为混为一谈了。最简单的解决方案是在同一个操作中提交给不同的方法。另一个简单的解决方案是包含一个标识表单的隐藏字段,或者根据存在的表单数据进行计算。当他们点击“AddaComment”时,我提交返回“addFundingComment”的方法,该方法显示“addFundingComment.jsp”页面。当他们点击“提交评论”时,我提交了将评论存储在数据库中的方法,并返回“success”,显示“mainfo.jsp”页面。我同意我可以在“maininfo.jsp”中隐藏注释表单,但我尝试使用两个较小的jsp文件,而不是一个较大的文件。我说的是使用操作配置中指定的方法配置两个操作。然后您可以有单独的“输入”结果,让框架来完成工作,而不必手动完成。
public String getInputName() {
  String inputName = "maininfo";
  if (actionName.equals("addFundingComment")
     inputName = "addFundingComment";
  return inputName;
}