黑马程序员---PropertyDescriptor和BeansUtil

---------------------- android培训java培训、期待与您交流! ----------------------

我们有一个注册页面,主题部分如下:

  <body>
    <form action="servlet/MyServlet" method="post">
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
    年龄:<input type="text" name="age"/><br/>
    出生日期:<input type="text" name="birthday"/><br/>     
     <input type="submit" value="登陆"/>
    </form>   
  </body>

针对此注册页面,我们见一个javaBean

public class Student {

 private String username;
 private String password;
 private String age;
 private String birthday;
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return password;
 }
 
 public void setPassword(String password) {
  this.password = password;
 }
 public String getAge() {
  return age;
 }
 public void setAge(String age) {
  this.age = age;
 }
 public String getBirthday() {
  return birthday;
 }
 public void setBirthday(String birthday) {
  this.birthday = birthday;
 }
 @Override
 public String toString() {
  return "Student [age=" + age + ", birthday=" + birthday + ", password="
    + password + ", username=" + username + "]";
 }
}

用PropertyDescriptor完成填充javaBean

 Student student = new Student();
  Map<String,String[]> map = request.getParameterMap();//得到页面参数组成的的map
  for(Map.Entry<String, String[]> o: map.entrySet())
  {
   String key = o.getKey();
   try {
    PropertyDescriptor pd = new PropertyDescriptor(key, Student.class);//用参数名和javaBean实例化PropertyDescriptor

    Method m = pd.getWriteMethod();//通过对参数名的反射得到setter方法
    m.invoke(student, o.getValue());
   } catch (Exception e) {
    throw new RuntimeException(e);
   }
  }
  System.out.println(student);

这样就把页面的数据存入了javaBean中,不过页面参数名一定要和javaBean中的一致。

BeanUtils把这些封装到了populate(...)中。

  Student student = new Student();
  Map<String,String[]> map = request.getParameterMap();  
  try {
   BeanUtils.populate(student, map);
  } catch (Exception e) {
   throw new RuntimeException(e);
  }
  System.out.println(student);

 

 

---------------------- android培训java培训、期待与您交流! ---------------------- 

详细请查看:http://edu.csdn.net/heima 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PropertyDescriptor类是Java中的一个类,用于描述JavaBean中的属性。它提供了访问属性的方法,包括获取属性的名称、类型、读写方法等。通过使用PropertyDescriptor类,可以方便地操作JavaBean中的属性,实现属性的读取、设置和监听等功能。在Java中,PropertyDescriptor类常用于JavaBean的反射操作和属性编辑器的实现。 ### 回答2: PropertyDescriptor 类是 Java 中的一个类,主要用于对某个属性进行操作和控制。它提供了一种机制,可以通过反射的方式获取和设置一个类的属性的详细信息。 PropertyDescriptor 类提供了一系列的方法,例如: - getName()方法用于获取属性的名称; - getPropertyType()方法用于获取属性的类型; - getReadMethod()方法用于获取属性的读方法(getter方法); - getWriteMethod()方法用于获取属性的写方法(setter方法); - getValue()方法用于获取属性的值; - setValue()方法用于设置属性的值。 通过这些方法,可以灵活地对属性进行操作,例如获取属性的名称和类型,获取属性的读写方法,以及获取和设置属性的值。 PropertyDescriptor 类在 Java Beans 中广泛应用,特别是在图形界面编程中。它可以用于动态地操作和更新界面上的组件,例如文本框、标签等,使得界面的显示和交互更加灵活和便捷。 总的来说,PropertyDescriptor 类提供了一种方便的机制,可以通过反射的方式对类的属性进行操作和控制。它可以用于获取属性的名称和类型,以及获取和设置属性的读写方法和值。通过这些方法,可以在编码过程中更加灵活地对属性进行操作和管理,提高代码的可读性和可维护性。 ### 回答3: PropertyDescriptor类是Java中用来描述Java Bean中的属性的类。它提供了一种方便的方式来获取和设置Java Bean中的属性值。 PropertyDescriptor类可以通过传入属性名称和Java Bean的类对象来实例化。通过PropertyDescriptor实例化对象后,我们可以使用其提供的方法来获取和设置属性的值。 通过getPropertyType()方法,我们可以获取属性的类型。通过getReadMethod()方法和getWriteMethod()方法,我们可以获取属性的读取和设置方法。 除了获取和设置属性的值外,PropertyDescriptor类还可以用来操作Java Bean中的属性。通过setBound()方法,我们可以将属性绑定到一个属性编辑器,用于自定义属性的编辑器。通过setConstrained()方法,我们可以将属性标记为受约束属性,当属性值发生改变时,可以触发PropertyChangeEvent事件。 PropertyDescriptor类提供了一种方便、灵活的方式来操作Java Bean中的属性,我们可以通过它来获取和设置属性的值,或者操作属性的绑定和约束。它是Java中处理Java Bean属性的重要工具之一。 总结起来,PropertyDescriptor类是用于描述Java Bean中属性的类,提供了获取和设置属性值的方法,可以操作属性的绑定和约束。它是Java中处理Java Bean属性的重要工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值