JavaBean的第二种用法,是接收form组件的请求赋值。
一、修改person类。因为这一次是两个网页之间的数据传输,受中文乱码问题的影响,所以在person类中添加一个用于转码的函数,并且在每一个String类型的set方法中调用。这样才可以确保最后的中文显示正常。
1 package com.kaly.bean;View Code
2
3 import java.io.UnsupportedEncodingException;
4
5 public class person {
6 String name;
7 String sex;
8 int age;
9 String info;
10
11 public person() {
12 super();
13 }
14 public String getName() {
15 return name;
16 }
17 public void setName(String name) {
18 this.name=DecodeStr(name);
19 }
20 public String getSex() {
21 return sex;
22 }
23 public void setSex(String sex) {
24 this.sex = DecodeStr(sex);
25 }
26 public int getAge() {
27 return age;
28 }
29 public void setAge(int age) {
30 //数字不需要转解码
31 this.age=age;
32 }
33 public String getInfo() {
34 return info;
35 }
36 public void setInfo(String info) {
37 this.info = DecodeStr(info);
38 }
39 /**
40 * 专门用来转换中文乱码的函数
41 * @param srcString 待转换的字符串
42 * @return 转换后的字符串
43 */
44 private String DecodeStr(String srcString){
45 String objString="";
46 try {
47 objString = new String(srcString.getBytes("ISO-8859-1"),"utf-8");
48 } catch (UnsupportedEncodingException e) {
49 e.printStackTrace();
50 }
51
52 return objString;
53 }
54 }
二、建立indexbean.jsp,用于显示表单,输入请求。
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>View Code
2
3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
7 <title>我的JSP 'indexbean.jsp'开始页面</title>
8 <meta http-equiv="pragma" content="no-cache">
9 <meta http-equiv="cache-control" content="no-cache">
10 <meta http-equiv="expires" content="0">
11 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
12 <meta http-equiv="description" content="This is my page">
13 </head>
14
15 <body>
16 <center>
17 <form action="dspbean.jsp" method="get">
18 姓名:<input type="text" name="name" value="张道陵"><br>
19 性别:<input type="text" name="sex" value="男"><br>
20 年龄:<input type="text" name="age" value="100"><br>
21 信息:<input type="text" name="info" value="五斗米道创始人"><br>
22 <input type="submit" value="提交">
23 </form>
24 </center>
25 </body>
26 </html>
三、建立dspbean.jsp,用于接收请求,并且将表单提交的值全部赋给person实例p2,最后通过调用显示出来。
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>View Code
2
3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
7 <title>我的JSP 'dspbean.jsp'开始页面</title>
8 <meta http-equiv="pragma" content="no-cache">
9 <meta http-equiv="cache-control" content="no-cache">
10 <meta http-equiv="expires" content="0">
11 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
12 <meta http-equiv="description" content="This is my page">
13 </head>
14
15 <body>
16 <!-- 下面这句是对Javabean类person的引用,引用的实例是p2 -->
17 <jsp:useBean id="p2" class="com.kaly.bean.person"></jsp:useBean>
18 <!-- 下面这一行是对p1各个成员赋值,这里使用"*"表示将请求表单的值全部赋给person引用p2,前提是form中的所有name必须和person中的成员名对应 -->
19 <jsp:setProperty property="*" name="p2"/>
20 <!-- 下面这几行是取用p2中各个成员的值,实际上调用的是get方法 -->
21 姓名:<jsp:getProperty property="name" name="p2"/><br>
22 性别:<jsp:getProperty property="sex" name="p2"/><br>
23 年龄:<jsp:getProperty property="age" name="p2"/><br>
24 信息:<jsp:getProperty property="info" name="p2"/>
25 </body>
26 </html>
如果表单中的name和person中的对应成员名称不一样,就要用<jsp:setProperty name="实例" property="person中的成员名称" param="表单中对应name"/>的方式赋值。
运行结果:
点击提交之后。