JavaBean的规范
1.必须要有一个默认构造器(没参的)
2.提供get/set方法,如果只有get方法,那么这个属性是只读属性
3.属性:有get/set方法的成员,还可以没有成员,只有get/set方法。属性名称有get/set方法来决定,而不是成员变量。
4.方法名称满足一点的规范,那么它就是属性!boolean类型的属性,它的读方法可以是is开头,也可以是get开头
BeanUtils的使用
内省:
先得到内省类 --> Bean信息 - -> 属性描述符 - -> 属性的get/set对应的Method - -> 就可以反射了
一般通过commons的beanutils来实现,它是依赖内省完成的
步骤:
- 导包:
commons-beanutils.jar
commons-logging.jar
之前创建了一个Person类,有name和age两个属性
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;
import cn.itcast.commons.CommonUtils;
public class BranUtilsDemo_01 {
@Test
public void fun01() throws Exception {
String className = "Demo_01.Person";
Class c = Class.forName(className);
Object bean = c.newInstance();
BeanUtils.setProperty(bean, "name", "张三");
BeanUtils.setProperty(bean, "age", "21");
System.out.println(bean);
}
@Test
public void fun2(){
Map<String, String> map = new HashMap<String, String>();
map.put("name", "lisi");
map.put("age", "20");
Person p = CommonUtils.toBean(map, Person.class);
System.out.println(p);
}
}
Jsp中与JavaBean相关的标签(基本用不上)
- <jsp:useBean>:创建或查询bean
- <jsp:useBean id=”user1” class=”Demo_01.BeanUtilsDemo01” scope=”page”/>// page后面写要作用的域
- <jsp:setProperty>
- <jsp:setProperty property=”username” name=”user1” value=”admin”/>:设置名字为user1的JavaBean的uesrname属性值为admin。
- <jsp:getProperty>
- <jsp:getProperty property=”username” name=”user1”/>:获取名字为user1的JavaBean的username属性值。