目录
5.1 编写和使用javaBean
JavaBean及其使用
在JSP页面中混合了Java代码和HTML代码(模板数据),使得Java代码的独立性降低。将Java代码独立开发的一个方法是使用JavaBean技术。
JavaBean是遵循以下编码规范的Java类:
必须是public类
构造方法不能带有任何参数
对所有属性(即成员变量)都需要提供setXXX()和getXXX()或isXXX()方法,其中XXX为属性变量名。
JavaBean的使用:JSP操作元素:
<jsp:useBean>操作元素用于实例化JavaBean对象,并设置相关参数,格式为:
<jsp:useBeanid=“beanId”class=“classPath”[scope=“beanScope”] [type=“beanType”] [beanname=“beanName”] />其中,beanId是对象名,classPath是完整的类名,beanScope是对象的作用域(见3.4.2节)例如,<jsp:useBeanid=“user”class= “mybeans.SimpleBean”/>指令可以在当前页面内创建一个SimpleBean的实例user对象。下一步可以设置或读取它的属性,也可以调用相关方法。
<jsp:setProperty>操作元素设置JavaBean属性,格式为:
<jsp:setPropertyname=“beanId"
property="*" |
property=“pName" |
property=“pName" value= “pValue" |
property=“pName" param=“paramName"/>
例如,在上面的例子中使用<jsp:useBean>元素后可继续使用如下<jsp:setProperty>元素:
<jsp:setPropertyname=“user”property=“name”value=“ABC”/>
<jsp:setProperty>操作元素中:
beanId是<jsp:useBean>中的beanId
pName是与JavaBean类对应的某一个属性名
paramName是设置某个属性的form参数名称
pValue是设置某个属性的具体值,不能与param同时使用
如果pName用*,代表所有属性,此时不能用param和value内容
如果没有指定属性值,将自动取Web标单中同名的输入内容值。
JavaBean的使用:JSP操作元素
<jsp:getProperty>用于读取并向浏览器输出某个属性值,格式为:
<jsp:getPropertyname=“beanId”property=“propertyName”/>
例如,在上面的例子中使用<jsp:useBean>和<jsp:setProperty>元素后可继续使用如下<jsp:getProperty>元素:
<jsp:getPropertyname="user" property="name" />
另外, 可以在表达式和脚本中用beanId.方法名([参数])格式调用JavaBean的普通方法
1 package gacl.javabean.study;
2
3 /**
4 * @author gacl
5 * Person类就是一个最简单的JavaBean
6 */
7 public class Person {
8
9 //------------------Person类封装的私有属性---------------------------------------
10 // 姓名 String类型
11 private String name;
12 // 性别 String类型
13 private String sex;
14 // 年龄 int类型
15 private int age;
16 //是否已婚 boolean类型
17 private boolean married;
18 //---------------------------------------------------------
19
20 //------------------Person类的无参数构造方法---------------------------------------
21 /**
22 * 无参数构造方法
23 */
24 public Person() {
25
26 }
27 //---------------------------------------------------------
28
29 //------------------Person类对外提供的用于访问私有属性的public方法---------------------------------------
30 public String getName() {
31 return name;
32 }
33
34 public void setName(String name) {
35 this.name = name;
36 }
37
38 public String getSex() {
39 return sex;
40 }
41
42 public void setSex(String sex) {
43 this.sex = sex;
44 }
45
46 public int getAge() {
47 return age;
48 }
49
50 public void setAge(int age) {
51 this.age = age;
52 }
53
54 public boolean isMarried() {
55 return married;
56 }
57
58 public void setMarried(boolean married) {
59 this.married = married;
60 }
61 //---------------------------------------------------------
62 }
5.2获取和修改Bean
JavaBean是一种符合一定规范的Java类,通常用于封装数据和提供对数据访问的方法。获取和修改JavaBean中的数据,可以通过调用Getter和Setter方法来实现。
例如,一个名为Person的JavaBean类,包含属性name和age:
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
要获取Person类的name属性,可以调用getName()方法:
Person person = new Person();
String name = person.getName();
要修改Person类的name属性,可以调用setName()方法:
Person person = new Person();
person.setName("John");
同样的,要获取age属性和修改age属性,可以调用getAge()和setAge()方法。注意,在访问或修改JavaBean的私有属性时,必须使用Getter和Setter方法。
5.3bean的辅助类
Bean辅助类是用于简化JavaBean操作的工具类。它提供了一些常用的方法,例如将JavaBean转换为Map、将Map转换为JavaBean、对JavaBean进行属性复制等。
常见的Bean辅助类有:
1. Apache Commons BeanUtils:可以方便地对JavaBean进行属性的读取、写入和复制等操作。例如,可以通过BeanUtils.describe(Object obj)方法将JavaBean对象转换成Map<String, String>类型的对象。
2. Spring框架的BeanUtils:使用方式类似于Apache Commons BeanUtils,可以方便地对JavaBean进行属性的读取、写入和复制等操作。其中,BeanUtils.copyProperties(Object source, Object target)方法可以将源对象的属性复制到目标对象中。
3. Dozer Mapper:是一个开源的JavaBean映射框架,可以将一个JavaBean的属性值映射到另一个JavaBean中。它可以完成类型转换、复杂对象的映射、数据转换等操作。
这些Bean辅助类可以大大简化Java开发中对JavaBean的操作,提高开发效率。但需要注意,使用这些工具类时需要仔细阅读文档,了解其语法、语义和限制,以免出现不必要的错误。

2902

被折叠的 条评论
为什么被折叠?



