Struts 2动作错误消息

时间:2013-10-17 07:43:36

标签: jsp struts2

我有一个jsp页面,其中两个表单分别指向两个动作类。现在每个表单都有一个字段,我已经显示了操作错误&消息为:

<s:actionerror/>
<s:actionmessage/>

现在的问题是,当报告任何表单的操作错误/消息时...错误/消息显示在表单的两个字段中。

如何指定与操作类相对应的操作错误消息。

2 个答案:

答案 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)

您无法使用addActionErroraddActionMessage方法执行此操作。但是,您可以使用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_" />