今天写了一个Struts表单验证,但是程序老是报错:No getter method for property: "password2" of bean。 
页面代码: 
<html:form action="/login" method="post"> 
    用户名:<html:text property="username"></html:text><html:errors property="username"/><br>
     密码:<html:password property="password"></html:password><html:errors property="password"/><br>
     在此输入密码:<html:password property="password2"></html:password><html:errors property="password2"/><br>
     <html:submit>提交</html:submit> 
</html:form> 
FormBean中针对password2的get/set设置: 
public String getPassword2() { 
return password2; 

public void setPassword2(String password2) { 
this.password2 = password2; 

struts-config.xml配置文件中的配置: 
<form-property name="password2" type="java.util.String"></form-property> 我感觉配置没有任何错误,我仔细检查每个单词,包括大小写,我看了Struts的每个配置环节,没有缺少什么,页面上只是一个表单,并不牵扯数值传递问题,我写这个程序是为了模拟使用表单验证的。但是就是不知道为什么老是出现这个错误提示,而且如果我把password2输入文本框从页面中删除,其他的就没有问题,系统可以正常运行,一加上就会出现这个错误?请问给为高手为啥?

解决方案 »

  1.   

    看看是不是getter方法没有写对?
      

  2.   

    因为struts是通过反射机制完成get方法调用,所以对get函数名要求高,建议你把当前get方法删掉,用eclipse自动生成就没问题了
      

  3.   

    你确定页面找的是这个getter方法?
      

  4.   

    <html:password property="password2"></html:password>
    改为
    <html:password property="你的formbean.password2"></html:password>
      

  5.   

    <form-property name="password2" type="java.util.String"></form-property>  
    这里写错了,应该是:java.lang.String
      

  6.   

    <form-property name="password2" type="java.util.String"></form-property>  
      这个struts1的配置没接触过,一般都是直接<bean name="form名" class="包名+类名"></bean>,然后直接在action配置中调用bean
      jsp --请求到--action
      这中间的流程-- 根据表单form action 查找sturts配置中action ,根据这个查找到的action,去获取javabean类  ,然后通过get的方法获取属性的值