我有一个表单,其中我提交的评论与更新整个表单不同。
为了保持我的JSP可管理性,我使用以下Struts 2操作:
<action name="maininfo" class="MainInfo">
<result name="success" type="tiles">maininfo</result>
<result name="addFundingComment" type="tiles">addFundingComment</result>
<result name="input" type="tiles">maininfo</result>
</action>
maininfo
磁贴显示主窗体JSP页面。 addFundingComment
磁贴显示提交评论的表单。
我的问题是,如果验证失败,“输入”结果必须转到maininfo
tile
或addFundingComment
磁贴,但我需要它转到与之对应的磁贴形成验证失败。
我可以通过将addFundingComment
JSP代码放在maininfo
JSP代码中并使用<s:if>
来显示我想要的表单来解决这个问题,但我认为有两个单独的JSP文件使每个人都更容易管理和调试。
我想使用一个Action,以便在用户提交评论时更容易保留所有maininfo
字段更改。
有没有办法让一个action
与<results>
进入不同的JSP页面并将验证失败返回到相应的JSP页面?
答案 0 :(得分:1)
您可以使用动态结果配置返回相应的视图。动态属性是通过OGNL评估的,因此您必须创建一个getter方法来返回input
结果的位置。
<result name="input" type="tiles">${inputName}</result>
在动作类
中public String getInputName() {
String inputName = "maininfo";
if (actionName.equals("addFundingComment")
inputName = "addFundingComment";
return inputName;
}