回顾内容:
错误信息保存:Map 接口:http://blog.csdn.net/zhangze_wancheng/article/details/7815978
注册验证Bean程序
D:\ProgramFiles\webdemo\WEB-INF\classes\Register.java
package zz.registerdemo;
import java.util.Map;
import java.util.HashMap;
public class Register{
private String name;
private String age;
private String email;
private Map<String, String> errors = null;
public Register(){
this.name = "";
this.age = "";
this.email = "";
this.errors = new HashMap<String,String>();
}
public boolean isValidate(){
boolean flag = true;
if (!(this.name.matches("\\w{6,15}"))){
flag = false;
name = "";
errors.put("errName","用户名是6~15位的字母、数字或下划线!");
}
if (!(this.email.matches("\\w+@\\w+\\.\\w+\\.?\\w*"))){
flag = false;
email = "";
errors.put("errEmail","输入的Email地址不合法!");
}
if (!(this.age.matches("\\d+"))){
flag = false;
age = "";
errors.put("errAge","年龄只能是数字!");
}
return flag;
}
public String getErrors(String key){
String value = this.errors.get(key);
return value==null?"":value;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setAge(String age){
this.age = age;
}
public String getAge(){
return this.age;
}
public void setEmail(String email){
this.email = email;
}
public String getEmail(){
return this.email;
}
}
表单输入首页
D:\ProgramFiles\webdemo\7_java_bean\index1.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>表单输入首页</title></head>
<% request.setCharacterEncoding("GBK"); // 解决中文乱码%>
<!--定义request范围的javaBean-->
<jsp:useBean id="register" scope="request" class="zz.registerdemo.Register"/>
<body>
<form action = "check.jsp" method ="post">
用户名:<input type="text" name="name" value ="<jsp:getProperty name="register" property="name"/>">
<%=register.getErrors("errName")%><br>
年 龄:<input type="text" name = "age" value ="<jsp:getProperty name="register" property="age"/>">
<%=register.getErrors("errAge")%><br>
E-mail:<input type="text" name = "email" value ="<jsp:getProperty name="register" property="email"/>">
<%=register.getErrors("errEmail")%><br>
<input type="submit" value="注册"><input type="reset" value="重置">
</form>
</body>
</html>
表单验证页
D:\Program Files\webdemo\7_java_bean\check.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>表单验证页</title></head>
<% request.setCharacterEncoding("GBK"); // 解决中文乱码%>
<!--定义request范围的javaBean-->
<jsp:useBean id="register" scope="request" class="zz.registerdemo.Register"/>
<jsp:setProperty name="register" property="*"/> <!--为属性自动赋值-->
<body>
<%
if (register.isValidate()){
%>
<jsp:forward page="success.jsp"/>
<%
}else{
%>
<jsp:forward page="index1.jsp"/>
<%
}
%>
</body>
</html>
成功注册页
D:\ProgramFiles\webdemo\7_java_bean\success.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>欢迎页</title></head>
<% request.setCharacterEncoding("GBK"); // 解决中文乱码%>
<!--定义request范围的javaBean-->
<jsp:useBean id="register" scope="request" class="zz.registerdemo.Register"/>
<body>
用户名:<jsp:getProperty name = "register" property="name"/><br>
年 龄:<jsp:getProperty name = "register" property="age"/><br>
E-mail:<jsp:getProperty name = "register" property="email"/><br>
</body>
</html>
页面运行效果:
![](https://img-my.csdn.net/uploads/201208/10/1344577199_4500.jpg)
成功注册提交后显示页
![](https://img-my.csdn.net/uploads/201208/10/1344577095_9840.jpg)
问题:
1、编译错误:
org.apache.jasper.JasperException: /7_java_bean/index1.jsp(1,1) Unterminated <%@ page tag
解决:<%@ page contentType="text/html" , pageEncoding="GBK"%> 去掉“,”
类似问题:
<%jsp:useBeanid="register" scope="request"class="zz.registerdemo.Register"%/> 去掉%
注意区分:
<jsp:useBean id="register"scope="request" class="zz.registerdemo.Register"/>
VS
<jsp:setProperty name="register"property="*"/> <!--为属性自动赋值-->2、 age类型为String类型
3、register.isValidate()方法中标志位的设置flag
4、返回值判断return vallue=null?””:value