Bean setProperty

时间:2011-02-08 21:01:46

标签: java jsp javabeans

各位大家好:) 我在使用Bean的setPropety中有误解? 当我这样做时

 <jsp:setProperty name="myBean" property="*">

我必须使表单的字段名称与myBean中的属性名称相同 为了使值之间的匹配是HTTPRequest和myBean的属性, 如果我在表单字段中使用其他名称,则值将达到空值。 但是如果我想在同一个jsp页面中使用表单值,并定义包含表单值的Bean,那么如果我在表单字段中使用其他名称而不是bean属性的相同名称,则不会发生这种情况!为什么会这样?

看到这里,密码字段的名称是“密码”,myBean的属性名称是通过的,甚至它的工作原理!

//index.jsp page
<form method="post" action="index.jsp">
        Enter Your email:<input type="text" name="email"/>
        <br/>
        Enter Your Password :<input type="password" name ="pass">
         <br/>
        <input type="submit" name ="submit"/>
    </form>

    <jsp:useBean id="info" class="beans.info" scope="page">
        <jsp:setProperty name="info" property="*"/>
    </jsp:useBean>
        Your email is : <jsp:getProperty name="info" property="email"/>
          <br/>
         Your Pass is : <jsp:getProperty name="info" property="pass"/>
</body>

有人可以告诉我发生了什么事吗?

编辑:我修改了代码。

2 个答案:

答案 0 :(得分:1)

<input type="password" name ="pass">

您的密码字段 的名称 也是pass

其他原因可能是您没有运行您认为正在运行的代码。请注意,bean名称infoo是错误的。

答案 1 :(得分:0)

我遇到了和你一样的问题,我刚刚做了这个例子,它确实有效!

HTML页面

<form name="registrationForm" id="registrationForm" method="post" action="registerBean.jsp" >
Full Name:* 
<input type="text" name="fullname" id="fullname"/> 
  </form>

registerBean.jsp

<jsp:useBean id="userBean" scope="session" class="Code.UserBean" />
<jsp:setProperty name="userBean" property="fullName" param="fullname" />

关注(param="")属性,因为它是一方面将使html表单字段名与另一方面javabean之间进行匹配的属性。


UserBean.java

    public class UserBean
    {
        private String fullName;
 /**
     * @return the fullName
     */
    public String getFullName()
    {
        return fullName;
    }

    /**
     * @param fullName the fullName to set
     */
    public void setFullName(String fullName)
    {
        this.fullName = fullName;
    }
}