为了账号安全,请及时绑定邮箱和手机立即绑定

如果把出问题的几个属性对应的文本框删掉,问题就没了,一切正常!其他属性碰到null值也没问题!

如果把出问题的几个属性对应的文本框删掉,问题就没了,一切正常!其他属性碰到null值也没问题!

UYOU 2023-03-11 18:14:19
Form里有n个属性,字符串类型,属性对应的get/set方法用MyEclipse自动生成的,完全符合命名规范。页面上有n个文本框,对应form中的属性,字母大小写都正确。文本框的初始值由上个页面通过session传过来的,某些值可能为null。由上个页面进入这个页面的时候问题就出现了,如果后四个属性的初始值为null,就会出现No getter method for property xxx ……的错误。如果把这四个属性的文本框删除,就没问题了,即使其他属性为空,也不会出错。我就纳了闷儿了,同样是一个Form里的String类型的属性,差距他咋就这么大呢?大侠们帮帮忙吧!万分感激!我做的是一个修改详细信息的页面。大体代码:我的ActionForm里就是n个属性和对应的getter/setter。页面form:<html:form action="/modify.do" method="post"><% OldBean ob=(OldBean)session.getAttribute("oldBean");%><html:text property="pro1" value="<%=ob.getPro1()%>" /><html:text property="pro2" value="<%=ob.getPro2()%>" />……<html:text property="proN" value="<%=ob.getProN()%>" /><html:submit value="submit" property="submit" /></html:form>出问题的几个属性跟其他属性除了名不一样,其他都一样,名也是完全按照命名规范的,页面上的属性名是copy过去的,不会写错。
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

我说的Form是你的XXXForm类,不是Form表单

这四个属性的文本框 
原因可能是: 
1、这4个文本框你用struts标签写的<html:text ... />在Form里没有设为属性, 

2、你在Form里设成了属性,但是你没写成struts标签

查看完整回答
反对 回复 2023-03-15
?
湖上湖

TA贡献2003条经验 获得超2个赞

例如
有个ActionForm
pubic MyForm extends ActionFomr{
private long id;
private String name;

//对应的get,set方法。注意名称一定要规范
}

<html:form action="/modify.do" method="post"> 
<html:text property="id"/> 
<html:text property="name"/> 
</html:form>

你如果是想给form赋值,完全可以在action中直接给form设值,不用传到页面上。例如进入包含html:form的页面前,先经过action,从action给form赋值,action中有以下方法

public ActionForward initForm(//参数省略){
MyForm myform = (MyForm )form;
myform.setId(111);
myform.setName(”myName“);

mapping.findForward("你配置了ActionFOrm的页面");
}

查看完整回答
反对 回复 2023-03-15
  • 2 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号