Struts2后台获取input的值,大小写无区别?
<tr>
<td width="13%" height="38" class="top_hui_text"><span class="login_txt">管理员: </span></td>
<td height="38" colspan="2" class="top_hui_text"><input name="adminname" class="editbox4" value="" size="20"> </td>
</tr>
<tr>
<td width="13%" height="35" class="top_hui_text"><span class="login_txt"> 密 码: </span></td>
<td height="35" colspan="2" class="top_hui_text"><input name="password2" class="editbox4" type="password" size="20" >
<img src="images/luck.gif" width="19" height="18"> </td>
</tr>
上面是登陆的两个input 一个name是 adminname 一个是password2
但是后台定义的是
private String Adminname;
private String Password2;
查找的时候使用的也是大写
login2 = loginService.login2(Adminname, Password.createPassword(Password2));
上面 代码登陆正常,Debug的时候,也能获取到值,请问是为什么呢?
难道不区分大小写嘛?
------解决方案--------------------这是由你的set和get方法决定的。set+name属性值
(根据你提交的name属性的第一个字母转成大写)能找到就为执行里面的方法所以你只要set方法里是给你的Admin赋值那么就无所谓大小写了。
但是如果你把admin在后台变成aDmin那么struts2在在调用的时候就会调用你的setADmin,可是根据你的admin属性得到的应该是setAdmin这样的话就会报出NoSuchMethodException了
------解决方案--------------------action得到页面的值是通过setAdminname()。。。
你看看这一块
------解决方案--------------------
所以你admin写成Admin它的set方法都是setAdmin自然就匹配上了
------解决方案--------------------你HttpServletRequest.getParameter("adminname ");括号里面应该是小写的 和input表单一致的;
一般JavaBean属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名。例如:属性名为userName,其对应的getter/setter 方法是 getUserName/setUserName。
------解决方案--------------------1楼是对的,
你前台定义 adminname
后台定义Adminname
set的也是setAdminname
所以无区别。
------解决方案--------------------你admin写成Admin它的set方法都是setAdmin自然就匹配上了,无区别