1

我有一个表格,其中有一个部分我提交评论与更新整个表格分开。

为了使我的 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磁贴,但我需要它转到与验证失败的表单相对应的磁贴。

我可以通过将addFundingCommentJSP 代码放入maininfoJSP 代码中并使用 a<s:if>来显示我想要的表单来解决这个问题,但我认为拥有两个单独的 JSP 文件会使每个文件更易于管理和调试。

我想使用一个Action来更容易地maininfo在用户提交评论时保持所有字段更改。

有没有一种方法可以Action使用<results>它转到不同的 JSP 页面并将验证失败返回到相应的 JSP 页面?

4

1 回答 1

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;
} 
于 2017-06-22T16:11:04.977 回答