
给你一段属性反射的代码,你自己看着改吧
Field[] fs = userClagetDeclaredFields();for(int i = 0 ; i < fslength; i++){
Field f = fs[i];
fsetAccessible(true); //设置些属性是可以访问的
Object val = fget(bean);//得到此属性的值
Systemoutprintln("name:"+fgetName()+"\t value = "+val);
String type = fgetType()toString();//得到此属性的类型
if (typeendsWith("String")) {
Systemoutprintln(fgetType()+"\t是String");
fset(bean,"12") ; //给属性设值
}else if(typeendsWith("int") || typeendsWith("Integer")){
Systemoutprintln(fgetType()+"\t是int");
fset(bean,12) ; //给属性设值
}else{
Systemoutprintln(fgetType()+"\t");
}
}
基本就是getType()之后,根据type的类型来反射
1、直接把表单的参数写在Controller相应的方法的形参中
@RequestMapping("/addUser1")
public String addUser1(String userName,String password) {
Systemoutprintln("userName is:"+userName);
Systemoutprintln("password is:"+password);
return "/user/success";
}
2、通过>
public
void
doAdd_books(>
你可以试下。
formnamenamevalue
formname就是你在structs里面注册的那个formName
在AJAX里面是一样处理的。
还有一个原因就是你的id,重复了。。。
也就是说别的控件也用了这个ID
当然会没用。
好好检查下。这就是你编程提高的机会。
很容易理解的,
楼上有人说对了,就是引用传递和值传递的问题。
其实set方法是将此对象设置为前台可访问了。
当你get的时候取得是对象所在的内存指针的对象,
当你set的是一个对象时,对象地址没有改变,对象却变化了。
当set的是string时,string值变化是新建了string对象,也就说内存位置新建了,而你共享的是之前的string,取得时候自然也是之前的。
类似的你用到list容器 *** 作对象赋值也是如此,对象存的就是指针(引用)
以上就是关于java 反射 数据类型转换全部的内容,包括:java 反射 数据类型转换、spring mvc中controller怎么接收页面表单提交的数据、JSP无法获取表单元素的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)