Struts中jsp中表单input的name赋值与formBean里的私有成员关系
其实就是想知道填装的具体细节。
比如
jsp的form中有这么一个input
HTML code
<input type="text" name=userName> //1
对应ActionForm中有这么一个私有成员
Java code
private String UserName; //2
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
这里1,2前面标注的两个属性名直接是什么关系,必须一致吗?我有试过有的时候不一致也是可以的。
我试着读了下源码,发现太复杂,没看懂。。。。
初学Struts,求高人解释。
------解决方案-------------------- 其实struts这个用的是反射的原理。 lz 1中的name 与 2中fromebean里的私有属性的名字不一定要相同。但是私有属性的set方法的名字 必须是 1中 name首字母大写然后加 set。如 1中如果是<input type="text" name=userName> 那么2中formbean中私有属性 名字可以不是userName 但是 必须要有一个setUserName。
原因是:struts得到页面input的name属性的值,内部处理调用set+name的值(首字母变大写)这个set方法设置值到formbean里。简单来说就是反射原理。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------ActionForm里UserName要小写哦