2012-04-24 114 views
0

我在這裏有一個奇怪的問題。我的struts2 addFieldError(fieldName,ErrorMessage)不顯示我的jsp上的錯誤Struts2驗證消息不顯示

也我延長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()裏面。

+1

你在jsp中包含了錯誤標籤嗎? – cherit 2012-04-24 20:22:19

+0

那麼''「'(所有空格)是一個有效的用戶名?另外,如果它沒有做任何事情,你不需要實現你自己的'execute()'。也不相信當通過註釋(或者我猜想XML)更容易處理它時,手動進行驗證是值得的。 – 2012-04-24 21:37:12

+0

你在jsp中聲明瞭嗎? – 2012-04-25 02:15:26

回答

0

您的addFieldError方法不正確。應該是:

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

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

0

如果您在struts標記文本字段中使用簡單的主題。 <s:textfield theme="simple" />然後將其刪除。 正常情況下,錯誤消息會在兩行之間切換。嘗試這個。 並給我你的答覆。

+0

如果任何機構有任何解決我的上述問題,請幫助! – 2013-07-17 13:57:45