Struts2验证消息不显示

时间:2012-04-24 20:15:44

标签: java struts2 validation

我在这里遇到一个奇怪的问题。我的struts2 addFieldError(fieldName,ErrorMessage)没有在我的jsp上显示错误

我也在扩展ActionSupport,在我的Struts.xml中,我的主题设置并不简单。

我的ActionListener是

package pebsms.actionBeans.UserActions;

import pebsms.business.UserBusiness.Impls.UserBusinessImpl;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

    UserBusinessImpl userBusiness;

    public String userPassword;
    public String userName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserPassword() {
        return userPassword;
    }

.   public String execute()
    {
        return SUCCESS;
    }

    public void validate()
    {
        if (getUserPassword().length() <= 0)
            addFieldError(userPassword, "Enter Password");
        if (getUserName().length() <= 0)
            addFieldError(userName, "Enter UserName");
        if (!userBusiness.authenticateUser(userName, userPassword))
            addActionError("User authentication failed");**
    }
}

我的Struts.xml是

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default" >
        <action name="Login" >
            <result>/pages/LoginScreen/Login.jsp</result>
        </action>

        <action name="LoginAction" class="userAction">
                    <result name="input">/pages/LoginScreen/Login.jsp</result>
            </action>
    </package>
</struts>

addFieldError没有像我自己那样在jsp上提供错误消息,即使在validate()中调用了该方法。

2 个答案:

答案 0 :(得分:0)

你的addFieldError方法不正确。应该是:

    addFieldError("userName", "Enter UserName");

在jsp上使用元素的'name'属性。

答案 1 :(得分:0)

如果您在struts标记文本字段中使用简单主题。<s:textfield theme="simple" />然后将其删除。 通常错误消息在两行之间被切换。试试这个。 并给我你的答复。