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



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

为了使我的 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代码中并使用<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;
} 

最新更新