首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2011-12-28 
jsp怎么通过form表单把bean对象提交给servlet??*.jsp:htmlheadmetahttp-equiv Content-Type conte

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 就可以了;
[解决办法]
长了点,连样式表都贴出来了,汗!

热点排行