jsp Bean 标签 使用 一般规则 一个例子

来源:互联网 发布:互联网运营 知乎 编辑:程序博客网 时间:2024/05/17 02:30

表单:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>用户注册</title>  </head>    <body>    <form method="post" action="Reg_CM.jsp">    用户名:<input type="text" name="name"/><br>    密码:<input type="password" name="password"/><br>    性别:<input type="text" name="sex"/><br>    年龄:<input type="text" name="age"/><br>    爱好:    <input type="checkbox" name="hobby" value="打球">打球    <input type="checkbox" name="hobby" value="旅游">旅游    <input type="checkbox" name="hobby" value="编程">编程    <input type="checkbox" name="hobby" value="玩游戏">玩游戏<br>    备注:<textarea name="memo" row="3" col="15"></textarea><br>    <input type="submit" value="注册"/>    <input type="reset" value="重置"/>    </form>   </body></html>

提交到处理页面:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%request.setCharacterEncoding("GB2312"); %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>注册处理</title>  </head>    <body><jsp:useBean id="mybean" class="pkg.UserBean" scope="request"><jsp:setProperty name="mybean" property="*"/></jsp:useBean><%if(mybean.validate()){%>恭喜你,注册成功,你的注册信息如下:<br>姓名:<jsp:getProperty name="mybean" property="name"/><br>性别:<jsp:getProperty name="mybean" property="sex"/><br>年龄:<jsp:getProperty name="mybean" property="age"/><br><%String[] hobby=mybean.getHobby();if(hobby!=null){for(int i=0;i<hobby.length;i++){out.print(hobby[i]+" ");}out.println("<br>");}%>备注:<jsp:getProperty name="mybean" property="memo"/><br><%}else{%><jsp:forward page="ReReg.jsp"/><%}%>  </body></html>

该阶段,后台调用了UserBean.java

package pkg;import java.util.*;public class UserBean {private String name;private String password;private String sex;private String age;private String[] hobby;private String memo;private HashMap errors;public UserBean(){name="";password="";sex="";age="";memo="";errors=new HashMap();}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String[] getHobby() {return hobby;}public void setHobby(String[] hobby) {this.hobby = hobby;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}public String getErrors(String key){String value=(String)errors.get(key);if(value==null)return "";elsereturn value;}public void setErrors(String key,String value){errors.put(key,value);}//验证方法public boolean validate(){boolean allOk=true;if(name==null || name.length()==0){setErrors("name","姓名必填");allOk=false;}if(password==null || password.length()==0){setErrors("password","密码必填");allOk=false;}else if(password.length()<6){setErrors("password","密码的长度必须不少于6位");password="";allOk=false;}if(sex==null || sex.length()==0){setErrors("sex","性别必填");allOk=false;}else if(!sex.equals("男") && !sex.equals("女")){setErrors("sex","性别只能是男或者女");sex="";allOk=false;}if(age==null || age.length()==0){setErrors("age","年龄必填");allOk=false;}else{try{int a=Integer.parseInt(age);}catch(NumberFormatException ex){setErrors("age","年龄必须是整数");age="";allOk=false;}}return allOk;}}


最后处理错误信息,有保存原来正确输入:

  <body>  <jsp:useBean id="mybean" class="pkg.UserBean" scope="request"/>    <form method="post" action="Reg_CM.jsp">    用户名:<input type="text" name="name" value="<%=mybean.getName() %>"/>    <%=mybean.getErrors("name") %><br>    密码:<input type="password" name="password" value="<%=mybean.getPassword() %>"/>    <%=mybean.getErrors("password") %><br>    性别:<input type="text" name="sex" value="<%=mybean.getSex() %>"/>    <%=mybean.getErrors("sex") %><br>    年龄:<input type="text" name="age" value="<%=mybean.getAge() %>"/>    <%=mybean.getErrors("age") %><br>    爱好:    <input type="checkbox" name="hobby" value="打球">打球    <input type="checkbox" name="hobby" value="旅游">旅游    <input type="checkbox" name="hobby" value="编程">编程    <input type="checkbox" name="hobby" value="玩游戏">玩游戏<br>    备注:<textarea name="memo" row="3" col="15"></textarea><br>    <input type="submit" value="注册"/>    <input type="reset" value="重置"/>    </form>   </body>


如果输入完全符合规则:

 
<%if(mybean.validate()){%>恭喜你,注册成功,你的注册信息如下:<br>姓名:<jsp:getProperty name="mybean" property="name"/><br>性别:<jsp:getProperty name="mybean" property="sex"/><br>年龄:<jsp:getProperty name="mybean" property="age"/><br>