找不到getter Property XXX问题解决方法

第一次使用Strut的<html:multibox>标签库时,遇到了一个棘手问题:
org.apache.jasper.JasperException: No getter method available for property XXX for bean under name org.apache.struts.taglib.html.BEAN
经过了大半天痛苦的挣扎,才找到了这bug的根源。把我的这个问题写下来,希望对遇到的人有所帮助。
  • Step One:检查JSP和ActionFormBean中是否有拼写错误。
  • Step Two:检查在request中修改了属性名为ActionFormBean的代码,看是否存入了错误的FormBean导致属性不匹配。

// in my JSP

<html:form action="actionA" type="ActionFormA">
<logic:iterate id="element" name="list" type="LabelValueBean">
<html:multibox property="propertyA"><bean:write name="element" property="value"/></html:multibox><bean:write name="element" property="label"/>                                                                        
</logic:iterate>

// in my ActionFormA

String[] propertyA;

public void setPropertyA(String[] str){
    this.
propertyA = str;
}


public String[] getPropertyA(){
    return this.
propertyA ;
}

// in my Action
HibernateBean hb = manager.getHibernateBean(id);
httpServletRequest.setAttribute(
" ActionFormA ", hb);
说明:在跳转到JSP页面之前对form中的属性进行预填充,图方便直接将属性相同的持久化对象hb存到request中当ActionFormA用了。
错误在此!增加了ActionForm的propertyA属性但是存到request中的确是没有修改的HibernateBean!

修改后 :

HibernateBean hb = manager.getHibernateBean(id);
ActionFormA aForm 
= new ActionFormA(hb); //将hb数据复制到aForm中
httpServletRequest.setAttribute("ActionFormA", mForm );

It works!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值