各位大侠,小弟初学JSP,遇到一个问题:我首先在register.html上提交一个表单并准备在register.jsp当中用Bean方法和jsp:getProperty两种方法来获取表单中的数据,但是遇到了很大的问题。我的程序如下:
-----------------------------------------------------------
register.html
-----------------------------------------------------------
<form method="get" action="register.jsp">
<table>
<tr><td>name: <input name="userName" type="text"></td></tr>
<tr><td>password:<input name="passWord" type="password"></td></tr>
<tr><td>age: <input name="age" type="text"></td></tr>
<tr><td><input type=submit value="submit"></td></tr>
</table>
</form>
-----------------------------------------------------
register.jsp
-------------------------------------------------------
<%@ page contentType="text/html charset=gb2312"%>
<jsp:useBean id="user" scope="page" class="userInfo.TestBean"/>
<jsp:setProperty name="user" property="*"/> --------------------------------------<1>
<html>
<body>
register successfully! <br>
<hr>
use the function of Bean.<br>
userName:<%=user.getUserName()%><br>
passWord:<%=user.getPassword()%><br>
age: <%=user.getAge()%><br>
<hr>
use getProperty:<br>
userName:<jsp:getProperty name="user" property="userName"/><br>
passWord:<jsp:getProperty name="user" property="password"/><br>
age: <jsp:getProperty name="user" property="age"/><br>
</body>
</html>
----------------------------------------------------------------------------
package
--------------------------------------------------------------------------
package userInfo;public class TestBean{
public String userName;
public String passWord;
public int age;
public void setUserName(String name){
this.userName=name;
}
public void setPassword(String password)
{
this.passWord=password;
}
public String getUserName()
{
return this.userName;
//return "yuan";
}
public String getPassword()
{
return this.passWord;
}
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return this.age;
}}在register.jsp中如果我一旦用上了我标记为<1>的那个语句,就始终不能从register.html提交表单转到register.jsp页面。但是如果我一旦把那句话去掉的话,就可以转到register.jsp页面了,但是那却不是我想要的结果。请大家帮我解决一下,谢谢!
-----------------------------------------------------------
register.html
-----------------------------------------------------------
<form method="get" action="register.jsp">
<table>
<tr><td>name: <input name="userName" type="text"></td></tr>
<tr><td>password:<input name="passWord" type="password"></td></tr>
<tr><td>age: <input name="age" type="text"></td></tr>
<tr><td><input type=submit value="submit"></td></tr>
</table>
</form>
-----------------------------------------------------
register.jsp
-------------------------------------------------------
<%@ page contentType="text/html charset=gb2312"%>
<jsp:useBean id="user" scope="page" class="userInfo.TestBean"/>
<jsp:setProperty name="user" property="*"/> --------------------------------------<1>
<html>
<body>
register successfully! <br>
<hr>
use the function of Bean.<br>
userName:<%=user.getUserName()%><br>
passWord:<%=user.getPassword()%><br>
age: <%=user.getAge()%><br>
<hr>
use getProperty:<br>
userName:<jsp:getProperty name="user" property="userName"/><br>
passWord:<jsp:getProperty name="user" property="password"/><br>
age: <jsp:getProperty name="user" property="age"/><br>
</body>
</html>
----------------------------------------------------------------------------
package
--------------------------------------------------------------------------
package userInfo;public class TestBean{
public String userName;
public String passWord;
public int age;
public void setUserName(String name){
this.userName=name;
}
public void setPassword(String password)
{
this.passWord=password;
}
public String getUserName()
{
return this.userName;
//return "yuan";
}
public String getPassword()
{
return this.passWord;
}
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return this.age;
}}在register.jsp中如果我一旦用上了我标记为<1>的那个语句,就始终不能从register.html提交表单转到register.jsp页面。但是如果我一旦把那句话去掉的话,就可以转到register.jsp页面了,但是那却不是我想要的结果。请大家帮我解决一下,谢谢!
是设置所有属性(即JavaBean的那个类)
检查下JavaBean中属性和register.html中表单属性是否一致吧
useBean都忘光了 去做个实验
而表单提交后类型默认String
又设置所有字段封装在JavaBean 所以报错 把age的set方法改为
public void setAge(String age){
this.age=Integer.parseInt(age);
}
试试吧
因为你的bean里面并没有 setPassWord() (你的setPassword()是方法) bean里面的passWord 得不到值
最好 passWord 用setPassword方法名,要是getXxx(),Xxx是属性的名字(好象是规范)