我有一个jsp页面,其中两个表单分别指向两个动作类。现在每个表单都有一个字段,我已经显示了操作错误&消息为:
<s:actionerror/>
<s:actionmessage/>
现在的问题是,当报告任何表单的操作错误/消息时...错误/消息显示在表单的两个字段中。
如何指定与操作类相对应的操作错误消息。
答案 0 :(得分:2)
使用两个操作中的不同值返回相同的参数,以了解您来自哪个操作,并仅在其表单中显示<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;
答案 1 :(得分:1)
您无法使用addActionError
或addActionMessage
方法执行此操作。但是,您可以使用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_" />