问题描述:
前台提交的参数user.userName=df&user.password=PPW 但是后台的Action只解析到了userName属性。
参数提交形式:
http://localhost/easyGrow/web/admin/login.action?user.userName=df&user.password=PPW
struts配置:
<package name="authentication" namespace="/web/admin" extends="struts-default"> <action name="login" class="LoginAction" method="doLogin"> <result name="success" type="redirect" >/index.jsp</result> <result name="login">/login.jsp</result> </action> </package> |
LoginAction 如下:
private User user = null; public void setUser(User user) { this.user = user; } public String doLogin(){ print(user); return SUCCESS; } |
User类如下:
private int id = 0; private String userName = ""; private String password = ""; public 的get,set方法就不贴出来了。 |
问题:
当请求提交的时候,后台打印的时候只能打印出user.userName的值df,
分析:
既然userName已经解析到,为什么password就解析不到呢!怎么也想不通啊,呵呵。。。
RootCause:
最后无意中发现,如果在LoginAction中声明User的时候,改用public,就可以全部解析到了。
分析:
如果是访问限制的问题,那用private修饰的时候,userName也应该解析不到啊!