【问题标题】:Struts2 Validation Messages do not showStruts2 验证消息不显示
【发布时间】:2012-04-24 20:15:43
【问题描述】:

我在这里遇到了一个奇怪的问题。我的 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() 中调用的。

【问题讨论】:

  • 你的jsp中包含错误标签了吗?
  • 那么" "(所有空格)是一个有效的用户名吗?此外,如果它不执行任何操作,您也不需要实现自己的 execute()。当通过注释(或我想是 XML)更容易处理时,也不相信值得手动进行验证。
  • 你在jsp中声明了吗?
  • @tito 不,我没有包含在错误标签中,如果我放置标签,它会显示错误。但据我了解,该框架应该会自动注入错误。所以我只想知道为什么这个自动错误显示不起作用。
  • @DaveNewton 我刚刚发布了我正在研究的东西的抽象版本,所以是的,它听起来并不令人信服。这个动作将来会做很多事情。请阐明如何通过注释执行验证?我的意思是发布一个链接等。谢谢一个桶戴夫

标签: java struts2 validation


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    如果您在 struts 标记文本字段 .&lt;s:textfield theme="simple" /&gt; 中使用简单主题,则将其删除。 通常错误消息被夹在两行之间。试试这个。 并给我你的答复。

    【讨论】:

    • 如果有人对我的上述问题有任何解决方案,请帮忙!
    猜你喜欢
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    相关资源
    最近更新 更多