第三个版本,我们给项目增加校验功能,这里我们提供用户名和密码的非空校验。
实现校验主要有两步:
1、在Form中增加validate方法;
2、在jsp中显示校验出错的信息;
修改后的代码:
LoginForm.java
package com.coderdream.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class LoginForm extends ActionForm {
private String userName;// 用户名
private String password;// 密码
@Override
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// 错误对象
ActionErrors error = new ActionErrors();
// 消息对象
ActionMessages msg = new ActionMessages();
// 验证用户名不能为空
if (userName == null || userName.equals("")) {
msg.add("userName", new ActionMessage(
"login.error.username.required"));
}
// 验证密码为空
if (password == null || password.equals("")) {
msg.add("password", new ActionMessage(
"login.error.password.required"));
}
// 将错误的验证消息添加到错误对象中
error.add(msg);
return error;
}
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;
}
}
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<!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=UTF">
<title>Login</title>
</head>
<body>
<html:form action="/login">
<bean:message key="login.username" />
<html:text property="userName" />
<html:errors property="userName"/>
<br />
<bean:message key="login.password" />
<html:text property="password" />
<html:errors property="password"/>
<br />
<html:submit>
<bean:message key="login.submit" />
</html:submit>
</html:form>
</body>
</html>
application_zh.properties
login.username=\u7528\u6237\u540d login.password=\u5bc6\u7801 login.submit=\u767b\u9646 login.error.username.required=<font color='red'>\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a</font> login.error.password.required=<font color='red'>\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a</font>
application_en.properties
login.username=User Name login.password=Password login.submit=Submit login.error.username.required=<font color='red'>username is required</font> login.error.password.required=<font color='red'>password is required</font>
更新说明
1、LoginForm中覆盖了父类的validate方法,用于校验页面传过来的Form;
2、jsp中增加了<html:errors>标签,用于显示出错信息;
运行结果
中文环境
英文环境
源代码:(库文件请从版本一下载)