您的位置:首页 > 编程语言 > Java开发

关于Struts 1或2 ActionForm接受不…

2013-08-26 12:04 295 查看
举个简单的例子
package org.yj.active;

import com.opensymphony.xwork2.Action;

public class LoginAction {
private String uName;
private String uPwd;
public String getuName() {
return uName;
}

public void setuName(String uName) {
this.uName = uName;
}

public String getuPwd() {
return uPwd;
}

public void setuPwd(String uPwd) {
this.uPwd = uPwd;
}

public String login(){
if(this.uName.equals(this.uPwd))
{
return Action.SUCCESS;
}
else
{
return Action.ERROR;
}
}

}

一般写Action都会这么写~变量命名为骆驼命名 没问题~ set get;自动生成 ~前台控件名称和变量一致 也没问题
~其他的也应该没问题 ~但是无论如何 都接受不到页面的值 为什么呢??

经过笔者多次验证 和搜索~发现了个细节问题 ~ public String
getuName() { return uName;} 方法名中的uName的u没有大写~
如果改成getUName() 把所有方法名中的u改成U,方法体不变 就可以正常接受值了~

由于笔者也是初学者,内在实现方式不是很了解 只能猜测getuName不符合方法命名规范
或者getuName经过程序解读为getu+Name 将Name默认为接受传值的变量 所以uName不能获得值~
其他变量同理

解决方式:
经过测试 合理的解决方式有三种
1.小写开头的单词要有意义~形成单词
比如将u换成user,不要用无意义单词或字母 
2.如果还用uName这种没有意义的开头形势 手动改吧 保证get set后的首字母大写就可以了~
3.全小写 --经过笔者朋友的补充 全小写 开头单词也要有意义~(即是个单词)

P.S:我太阳 就这么一个错 让我研究了一天~!一个字母害死我了~对观看的各位有帮助的
给个关注吧!求关注~求包养~各种求!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: