各位大家好:) 我在使用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>
有人可以告诉我发生了什么事吗?
编辑:我修改了代码。
答案 0 :(得分:1)
<input type="password" name ="pass">
您的密码字段 的名称 也是pass
。
其他原因可能是您没有运行您认为正在运行的代码。请注意,bean名称infoo
是错误的。
答案 1 :(得分:0)
我遇到了和你一样的问题,我刚刚做了这个例子,它确实有效!
<form name="registrationForm" id="registrationForm" method="post" action="registerBean.jsp" >
Full Name:*
<input type="text" name="fullname" id="fullname"/>
</form>
<jsp:useBean id="userBean" scope="session" class="Code.UserBean" />
<jsp:setProperty name="userBean" property="fullName" param="fullname" />
关注(param=""
)属性,因为它是一方面将使html表单字段名与另一方面javabean之间进行匹配的属性。
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;
}
}