Action
==============
private User user;
public setUser(User user)
{
    this.user=user;
}
public User getUser()
{
    return user;
}
...前端页面
==============
<input type="text" name="user.name"/>
<input type="text" name="user.age"/>
...问题:
如果直接把User的name和age直接定义在Action里,还好办,可是如果像上面这种情况,赋值的过程是如何的呢?难道先判断提交上来的user.name的格式,然后取前部分的user来反射User类,再取后部份的name来反射User类的属性?如果这样的话,遇到嵌套多几层的属性,那不就晕菜了?请高手提供个清晰的实现思路,谢谢!!

解决方案 »

  1.   

    这个估计要看下 struts2 的源码..
      

  2.   

    例子
    Object obj = XXX;// 得到obj对应的类
    Class objClass = obj.getClass();// 得到指定的字段
    Field theField = objClass.getDeclaredField("user"); 
    //Method theMethod = objClass.getDeclaredMethod();// 设置允许访问的权限
    theField.setAccessable(true);
    // 赋值
    theField.set(obj, new User());
      

  3.   

    群82253447 java技术交流社区刚刚组建
    三人行必有吾师,但愿在这里都能体会到做学者和师者的乐趣。欢迎有问题和懂技术javaE族进场点评或PK 
      

  4.   

    如果没有研究过 JavaBeans 规范,不知道下面这些类/接口的话java.beans.Introspector
    java.beans.BeanInfo
    java.beans.PropertyDescriptor那就不要去想这些事情了。