1

我是 Struts 2 的新手,之前曾在 Struts 1 中工作过。

我们如何将错误消息与 UI 组件(例如文本框)绑定?我不希望错误消息成为全局错误消息。

为了在 Struts 1 中达到同样的效果:

在表单验证方法中,我使用了这个:

ActionErrors errors = new ActionErrors();       
if(userName != null && userName.length() <= 0)
    errors.add("userName",new ActionError("error.userName.required"));

在 UI 中,用于显示消息:

<html:messages id="userName" property="userName">
    <bean:write name="userName"/>
</html:messages>

在 Struts 2 中,如果我扩展 Action 类ActionSupport并使用它:

addActionError(getText("Please enter UserId"));

然后它似乎是一条全局消息,可以使用以下命令在 UI 中显示:

<s:actionerror />

因此不确定如何在 Struts 2 中实现相同的功能。请让我知道这一点。

4

1 回答 1

5

<s:fieldError>标签将是最接近的等价物:

<s:fielderror fieldName="userName" />

在 Java 端,您将ValidationAware.addFieldError用于添加特定于字段的消息:

public class AnyAction extends ActionSupport {
    public void validate() {
        addFieldError("userName", "User ID is required");
    }
}

也就是说,对于低级验证,如果可能,我会坚持使用默认的基于 XML 的机制,因为它为您做了很多工作,并且使使用 I18N/properties 更容易一些。

于 2013-05-21T15:46:50.693 回答