Struts2 上的 addFieldError 未在字段上显示错误 [英] addFieldError on Struts2 not displaying error on the fields

查看:38
本文介绍了Struts2 上的 addFieldError 未在字段上显示错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 struts2 很陌生.从一些书籍和网站我得到了这个例子.在动作类中,它使用验证方法来检查逻辑.该方法从打印语句中调用 bcoz.但是错误没有显示在字段附近.请帮帮我

Hi I m very new to struts2. from some books and websites I got this example. In action class it use validate method to check logic. The method is called bcoz from the print statements. But the error is not shown near to the fields. Jst help me

Index.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Home</title>
</head>
<body>
<s:form action="LoginAction ">
<s:textfield name="username" label="Username" />
<s:textfield name="password" label="Password" />
<s:submit value="Login"></s:submit>
</s:form>
</body>
</html>

Struts.xml

<package name="default" extends="struts-default">
        <action name="LoginAction" class="org.shammu.struts2.actions.LoginAction">
                <result name="success">/welcome.jsp</result>
                <result name="input">/index.jsp</result>
        </action>
        <action name="emptypassthrough">
                <result>index.jsp</result>
        </action>


</package>

LoginAction.java

 package org.shammu.struts2.actions;

 import org.shammu.struts2.beans.LoginBean;

 import com.opensymphony.xwork2.ActionSupport;

 @SuppressWarnings("serial")
 public class LoginAction extends ActionSupport{

private String username;
private String password;
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}
public String execute(){
    LoginBean login = new LoginBean();
    login.setPassword(password);
    login.setUsername(username);
    if (getUsername().equals("abcd")) {
        return "success";
    } else {
        return "input";
    }

}

@Override
public void validate() {
    if (username.length() < 3) {
        System.out.print("user err ok");
        this.addFieldError(username, "Username Empty Pls provide");

    }
    if (password.length() < 3) {
        System.out.print("Pass err ok");
        this.addFieldError(password, "Password Empoty provride one pkls");
    }

}
 }

我不考虑执行方法.我想要在字段附近打印错误消息...帮助

I m not considering execute method. I want jst the error msg printed near to fields... Help

推荐答案

您没有正确使用 addFieldError 方法.该方法中的第一个参数是字段的名称.在您的情况下,它应该是 "username".

You are not correctly using addFieldError method. The first parameter in that method is a name of the field. In your case it should be "username".

addFieldError("username", "Username Empty Pls provide");

这篇关于Struts2 上的 addFieldError 未在字段上显示错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆