问题:
javax.servlet.jsp.JspException: No getter method for property rUnit of bean org.apache.struts.taglib.html.BEAN
NewForm.java
- private String rUnit;
- public String getRUnit() {
- return rUnit;
- }
- public void setRUnit(String rUnit) {
- this.rUnit = rUnit;
- }
New.jsp
运行,抛出上面提到的异常。
上网搜,CSDN找到相同问题的帖子,不过帖子最终也没道出问题的原因。不过帖子中的问题极相似,他的是eDate,我的是rUnit。他是把JSP中的eDate改成EDate就问题去除了。我在想,没道理啊,没有违反JAVA的编码规范啊,为什么要改。翻看前的Form Bean,啊,还真巧,以前的Form Bean中的属性名字都比较“长”的。而且都前面一节都非单字母:officePhone,而没写过oPhone之类的属性名。不会真因为这个吧,那两个字母呢,于是再试。。。。
结果出来了,两个(明显,是两个以上)小写字母打头就没问题。啊,这问题还让人想不明白,struts1.1在内部处理这些名字时应该是有问题的,起码根据JSP中的rUnit这个property名字不能正确地找到Form Bena里面相应的getRUnit()方法。但却能根据officePhone正确找到getOfficePhone()方法。
BUG,一定是个BUG。。。。
以前,相同的写法,运行正常!
OldForm.java
- private String officePhone;
- public void setOfficePhone(String officePhone) {
- this.officePhone = officePhone;
- }
- public String getOfficeAddress() {
- return officeAddress;
- }
Old.jsp
“贴的代码和部分内容在提交后怎么就莫明其妙地消失了??。。。”