0

ここで奇妙な問題があります。私のstruts2addFieldError(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メソッドがvalidate()内で呼び出されたとしても、自動的にそうなるはずのように、私のjspにエラーメッセージが表示されません。

4

2 に答える 2

0

addFieldError メソッドが正しくありません。次のようにする必要があります。

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

jsp 上の要素の「name」属性を使用します。

于 2012-09-21T21:54:08.577 に答える
0

struts タグ textfield で単純なテーマを使用している場合。<s:textfield theme="simple" />それを削除します。通常、エラー メッセージは 2 つの行に挟まれます。これを試して。そして、あなたの返事をください。

于 2013-07-17T13:51:27.970 に答える