>我有一个表单,其中有一个部分,我提交一条评论,与更新整个表单分开。
为了使我的 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
磁贴显示用于提交注释的表单。
我的问题是,如果验证失败,"input"
结果必须转到maininfo
磁贴或addFundingComment
磁贴,但我需要它转到与验证失败的表单对应的磁贴。
我可以通过将addFundingComment
JSP代码放在maininfo
JSP代码中并使用<s:if>
来显示我想要的表单来解决此问题,但我认为拥有两个单独的JSP文件可以使每个文件更易于管理和调试。
我想使用一种Action
,以便在用户提交评论时更轻松地保留所有maininfo
字段更改。
有没有办法让一个Action
<results>
转到不同的 JSP 页面并让验证失败返回到相应的 JSP 页面?
您可以使用动态结果配置返回相应的视图。动态属性通过 OGNL 进行评估,因此您必须创建一个 getter 方法来返回input
结果的位置。
<result name="input" type="tiles">${inputName}</result>
在操作类中
public String getInputName() {
String inputName = "maininfo";
if (actionName.equals("addFundingComment")
inputName = "addFundingComment";
return inputName;
}