在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个回答

按照代理的方式去反射

u011323342
流沙无影 具体应该怎么做啊?
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问