【发布时间】:2010-09-12 12:49:48
【问题描述】:
我正在开发一个非常简单的 Struts2 应用程序,我遇到了这个奇怪的(而且很容易解决,我敢肯定)问题:
当我直接访问登录 url 时,它显示登录表单(用户名和密码文本字段)并出现以下错误:
Name field is required
Password is required
该字段是空的,因为这是用户第一次进入它,所以我想告诉 Struts2 验证系统不要验证,除非用户使用用户名和密码提交登录表单。我确定我忽略或忘记了什么。
Login.java 动作代码:
package actions.access;
import actions.base.BaseAction;
import data.Webuser;
public class Login extends BaseAction {
private Webuser user;
public String execute() {
if (user != null) {
session = this.getSession();
if (session.get("user-logged") == null ) {
session.put("user-logged", user.getId());
}
}
return SUCCESS;
}
public void validate() {
if (user != null) {
Webuser realUser = services.getWebuserByNickname(user.getNickname());
if (realUser.getPass().equals(user.getPass())) {
user.setId(realUser.getId());
} else {
addFieldError("user.nickname", "Nickname or password are wrong");
}
}
}
public Webuser getUser() {
return user;
}
public void setUser(Webuser user) {
this.user = user;
}
}
登录验证.xml 代码:
<field name="user.nickname">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Login name is required</message>
</field-validator>
</field>
<field name="user.pass">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Password is required</message>
</field-validator>
</field>
我们将不胜感激任何形式的帮助。 提前致谢。
【问题讨论】:
标签: validation struts2