JavaBean的第二种用法,是接收form组件的请求赋值。
一、修改person类。因为这一次是两个网页之间的数据传输,受中文乱码问题的影响,所以在person类中添加一个用于转码的函数,并且在每一个String类型的set方法中调用。这样才可以确保最后的中文显示正常。
1 package com.kaly.bean; 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"%> 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"%> 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"/>的方式赋值。
运行结果:
点击提交之后。
时间: 2024-12-14 18:40:57