流沙无影 2017-03-20 08:45 采纳率: 0%
浏览 896

在ACTION中想通过反射获取struts自动填充对象的属性和值

在ACTION中想通过反射获取struts自动填充对象的属性和值,为什么获取的和预期不一样
这是我的action:
action
这是方法调用:
方法调用
这是具体的checkAtrr方法:

 public static void checkAttr(Object vo,String errorMsg,HashMap<String, String> extra) throws IllegalInputException{

        Class<? extends Object> voClass = vo.getClass();
        Field[] field=voClass.getDeclaredFields();
        if(errorMsg==null){
            errorMsg="你的输入包含非法字符,请重新输入!";
        }
        for(Field attr: field){
            attr.setAccessible(true);
            Object value=null;
            try {
                value=attr.get(vo);//获取属性值!!
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println("name:"+attr.getName()+"         value:"+value);
            //校验是否有要被区别对待的属性
            /*if(extra!=null&&extra.get(attr.getName())!=null){
                if(value!=null&&checkRegExp(value.toString(),extra.get(attr.getName()))){
                    System.out.println("name:"+attr.getName()+"         value:"+value.toString());
                    throw new IllegalInputException(errorMsg);
                }
            }else{
                if(value!=null&&checkRegExp(value.toString(),REGEX_INPUT)){
                    System.out.println("name:"+attr.getName()+"         value:"+value.toString());
                    throw new IllegalInputException(errorMsg);
                }
            }*/
        }
  }

这是debug时,cust的情况:
'cust'
这是log out输出情况,获取的不是具体的属性和值:
输出
我猜想应该是spring的动态代理原因,是因为我反射的代理类吗?,怎么解决

  • 写回答

1条回答

  • 雕虫大计 2017-03-20 10:20
    关注

    按照代理的方式去反射

    评论

报告相同问题?

悬赏问题

  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题