4

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

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

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

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

4

2 回答 2

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;
于 2013-10-17T08:38:39.360 回答
1

您不能使用addActionErrororaddActionMessage方法执行此操作。但是您可以使用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_" />
于 2013-10-17T07:58:03.100 回答