<form action="" method="post">
<jsp:useBean id="cattle" scope="page" class="cattle.cattle_move_info">
<jsp:setProperty name="cattle" property="*" />
</jsp:useBean>
<jsp:useBean id="chStr" scope="page" class="com.mysql.chStr" />
<jsp:useBean id="con" scope="page" class="com.mysql.sql" />
setProperty不起作用啊,我认真检查过了,在JavaBean里面的变量名字和input文本框的名字是一样的,但是<jsp:setProperty name="cattle" property="*" /> 这一句话就是不能得到值,得到的是空值,也不提示有错。
插入到数据库里面的是空值。各位高手帮帮忙啊

解决方案 »

  1.   

    jsp:setProperty用来设置已经实例化的Bean对象的属性,有两种用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示:  <jsp:useBean id="myName" ... />
    ...
    <jsp:setProperty name="myName"  
    property="someProperty" ... />
       此时,不管jsp:useBean是找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty都会执行。第二种用法是把jsp:setProperty放入jsp:useBean元素的内部,如下所示:  <jsp:useBean id="myName" ... >
    ...
    <jsp:setProperty name="myName"  
    property="someProperty" ... />
    </jsp:useBean>
       此时,jsp:setProperty只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty。
      

  2.   

    我也遇到跟你一样的问题,经过查找很多资料发现是在Bean中set和get方法中的问题。如
    a.jsp
    用户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="登录">
    A.class
    public class A
    {
      private String username ;
      private String password ;
      public void setUsername(String username)//注意setUsername必须写成这样不要写成setUserName
      {
        this.username = username ; 
      }
      public void setPassword(String password)
      {
        this.password = password ;
      }
      public String getUsername()
      {
        return this.username ;
      }
      public String getPassword()
      {
        return this.password ;
      }
    }
    希望对你有帮助,我的自动匹配成功。
      

  3.   

    class="cattle.cattle_move_info"
    这里应该是你类的完整路径,cattle_move_info难道是Java文件吗?
    如果是那就为什么类名首字母不用大写的。