我有一个 jsp 页面,其中有两个表单分别指向两个动作类。现在每个表单都有一个字段,我将操作错误和消息显示为:
<s:actionerror/>
<s:actionmessage/>
现在的问题是,当报告任何表单的操作错误/消息时,错误/消息会显示在表单的两个字段中。
如何指定与操作类相关的操作错误消息。
从两个动作返回具有不同值的相同参数,以了解您来自哪个动作,<actionerror/>
并<actionmessage/>
仅在其表单内显示。
<s:form action="firstAction">
<s:if test="form==1">
<s:actionerror/>
<s:actionmessage/>
</s:if>
<s:textfield name="someData" />
<s:submit />
</s:form>
<s:form action="secondAction">
<s:if test="form==2">
<s:actionerror/>
<s:actionmessage/>
</s:if>
<s:textfield name="someOtherData" />
<s:submit />
</s:form>
在 firstAction.java
@Getter private final static int form = 1;
@Getter @Setter private String someData;
在 secondAction.java 中:
@Getter private final static int form = 2;
@Getter @Setter private String someOtherData;
您不能使用addActionError
oraddActionMessage
方法执行此操作。但是您可以使用addFieldError
带有这样的键的方法,它不是您操作中任何字段的名称。并在 JSP 中使用<s:fielderror>
标记来显示该消息。
在动作类的某个地方:
addFieldError("your_action_name_", "your_message");
在其他动作类的某个地方:
addFieldError("your_other_action_name_", "your_other_message");
在 JSP 中:
<s:fielderror fieldName="your_action_name_" />
<s:fielderror fieldName="your_other_action_name_" />