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

Validation with one action and multiple JSP pages in Struts 2

我有一个表单,其中有一个部分,我可以在其中提交评论,而不是更新整个表单。

为了让我的 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> 来显示表单 I想要,但我认为有两个单独的 JSP 文件使每个文件都更易于管理和调试。

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

有没有一种方法可以让一个 Action<results> 转到不同的 JSP 页面并且验证失败 return 到相应的 JSP页数?

您可以使用动态结果配置来return相应的视图。动态 属性 是通过 OGNL 评估的,因此您必须创建一个 getter 方法来 return input 结果的位置。

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

活动中class

public String getInputName() {
  String inputName = "maininfo";
  if (actionName.equals("addFundingComment")
     inputName = "addFundingComment";
  return inputName;
}