读书人

jsp如何通过form表单把bean对象提交给

发布时间: 2011-12-28 22:45:21 作者: rapoo

jsp怎么通过form表单把bean对象提交给servlet??
*.jsp:
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=utf-8 ">
<title> 修改信息 </title>
<style type= "text/css ">
<!--

<!--
.kuan { font-size: 9pt; color: #ff0000; border: 1px solid; background-color:#CCFF99; border-color: #CCFF99 #CCFF99 #3399FF}
-->
.tb{ border: 1px solid; border-color: #000000}
.tr{ border: 1px solid; border-color: #000000}
.style2 {color: #000000}
.style3 {color: #000000}
.style4 {font-size: 12px; font-family: "宋体 ";}
body {
background-color: #ffffff;
}
-->
</style>
</head>
<body>
<%
//从servlet 读取的AddressBook bean d对象
AddressBook addr = (AddressBook) request
.getAttribute( "addressBook ");
String name = addr.getname();
System.out.println( "name= " + name);
String sex = addr.getsex();
%>
<table width= "648 " height= "158 " border= "0 " align= "center "
cellspacing= "0 ">
<tr>
<td valign= "top ">
<form name= "form1 " method= "get " action= "JspServlet ">
<input name= "id " type= "hidden " value= "-1 ">
<table width= "468 " height= "293 " border= "1 " cellspacing= "0 " class= "tb ">
<tr>
<td height= "23 " colspan= "3 ">
<img src= "../images/bar1.gif " width= "508 " height= "25 ">
</tr>
<tr bgcolor= "#CCFF99 ">
<td width= "181 ">
<span class= "style4 "> 姓名: </span>
<input name= "name " type= "text " class= "kuan " size= "15 "
value= " <%=name%> ">
</td>
<td width= "277 ">
<span class= "style2 "> 性别 </span> <span class= "style3 "> : </span>
<input name= "sex " type= "radio " value= "男 "
<% if (sex.equals( "男 ")) {%> checked <%}%> > 男
<input type= "radio " name= "sex " value= "女 "
<%if (sex.equals( "女 ")){%> checked <%}%> > 女
</td>
</tr>
<p align= "center ">
<input type= "submit " name= "Submit " value= "保 存 ">
<input type= "reset " name= "Submit2 " value= "重 填 ">
</p>


</td>
</tr>
</table>
<%
AddressBook adb = new AddressBook();
session.setAttribute( "addressBook ", adb);
//没有得到值?????????????
adb.setname(request.getParameter( "name "));
adb.setsex(request.getParameter( "sex "));
%>
</form>
</tr>
</table>
</body>
</html>

jsp怎么通过form表单把bean对象提交给servlet??
AddressBook是一个bean对象,我希望当我点击“保存”时,属性(name,sex)能够保存到session.setAttribute( "addressBook ", adb)中,但是发现request.getParameter( "name ")和adb.setsex(request.getParameter( "sex "));都为null,这是为什么??难道不能传吗??

[解决办法]
你表单提交给了JspServlet
而你在JSP中写这段代码怎么能获得值。。。。。。
<%
AddressBook adb = new AddressBook();
session.setAttribute( "addressBook ", adb);
//没有得到值?????????????
adb.setname(request.getParameter( "name "));
adb.setsex(request.getParameter( "sex "));
%>
[解决办法]
<jsp:userBean id= "xxxx " class= "a.b.c.D ">
<jsp:setProperty name= "xxxx " property= "zzzz " value= "yyyy " />
....
</jsp:useBean>
[解决办法]
jsp提交表单到servlet
servlet通过request对象得到表单信息
然后 BeanClass(bean的名字) objBean(引用) = new BeanClass();
objBean.setName()...用set方法存到bean里
objBean.方法名() 做操作 根据操作的返回值跳专到不同页面
[解决办法]
一般情况下http request传输的都是String类型的parameter,一般是name=value的形式。
如果非要传输一个对象,那么就把这个对象变成一种可以读写的形式,具体可以参考Serializable
[解决办法]
你可以参考下structs的formbean与页面的标签对应的代码,如果你真想亲自实现它,可能需要费很大力气
[解决办法]
如果你想在当前页面先将表单的数据封装成类,那你的action就不应该提交给JspServlet,而应该提交给当前的页面,然后再通过其他方法,将封装好的class提交给servlet.

还有一中方法就是,你通过js代码,用户点击提交按纽时出发一个js动作,该js代码就是负责将form的属性封装到class中,封装完后再提交给servlet 就可以了;
[解决办法]
长了点,连样式表都贴出来了,汗!

读书人网 >Java Web开发

热点推荐