Struts2使用一个动作和多个jsp页面进行验证

时间:2017-06-22 14:37:41

标签: struts2

我有一个表单,其中我提交的评论与更新整个表单不同。

为了保持我的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 tileaddFundingComment磁贴,但我需要它转到与之对应的磁贴形成验证失败。

我可以通过将addFundingComment JSP代码放在maininfo JSP代码中并使用<s:if>来显示我想要的表单来解决这个问题,但我认为有两个单独的JSP文件使每个人都更容易管理和调试。

我想使用一个Action,以便在用户提交评论时更容易保留所有maininfo字段更改。

有没有办法让一个action<results>进入不同的JSP页面并将验证失败返回到相应的JSP页面?

1 个答案:

答案 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;
}