<% 
FormBean fb = new FormBean(); 
request.setAttribute("aa",fb); 
%> <head> 
</head> 
<body> 
  <form name = "form1" action="test2.jsp" method="post"> 
    <input type="submit" name="b1" value="submit"> 
  </form> 
</body> test2.jsp 如下 <% 
Object obj = request.getAttribute("aa"); 
out.println(obj.toString()); 
%> 上例子中我想在test.jsp中把FormBean 传递到test2.jsp 中, 可是我用request.getAttribute("aa") 得到的是Null 请问我如何做才能实现在jsp间传递java 对象? 请给代码参考,谢谢. 

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【baihexige】截止到2008-07-12 11:24:27的历史汇总数据(不包括此帖):
    发帖的总数量:9                        发帖的总分数:330                      每贴平均分数:36                       
    回帖的总数量:5                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:5                        结贴的总分数:180                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:4                        未结的总分数:150                      
    结贴的百分比:55.56 %               结分的百分比:54.55 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    request.setAttribute("aa");
    先副职在取
      

  3.   

    放 : 
    FormBean fb = new FormBean();
    request.setAttribute("aa",fb); 
    取 :
    FormBean r=(FormBean)request.getAttribute("aa");
    if(r!=null){
     //处理
    }
      

  4.   

    思路错误,没有你那样传的.
    <% 
    FormBean fb = new FormBean(); 
    request.setAttribute("aa",fb); 
    %> 
    <jsp:forward page="test2.jsp"/>
    可以实现.
      

  5.   

    FormBean fb = new FormBean(); 你这里刚刚实例化.传过去当然是null 了..先要将fb对象只赋值...那样就不会为null了..可以在formbean类中写个静态方法用来初始化fb对象..
      

  6.   

    你要知道 对象的四个作用域,page,request,session,server,request内的对象只有在同一个request内共享,
    而你的<form name = "form1" action="test2.jsp" method="post"> 到test2.jsp之后,test.jsp和test2.jsp就是2个不同的request了,那么在test.jsp这个request里面的对象 当然 不存在于test2.jsp这个request,取出来就是null了。vtudiv 的代码 <jsp:forward page="test2.jsp"/>  采用的forward的方式,从test.jsp到test2.jsp,仍然是同一个request,所以可以共享这个对象。但是用这种方式可能不满足你的需要。。要在不同的request内共享对象,只有通过session来传递了,
    <%
    FormBean fb = new FormBean();
    request.getSession().setAttribute("aa",fb);
    %>
    那么只要是在这个session的任何request都可以取到这个对象了,取对象的方法:
    <%
    FormBean fb = (FormBean) request.getSession().getAttribute("aa");
    %>
      

  7.   

    <% 
    FormBean fb = new FormBean(); 
    request.setAttribute("aa",fb); 
    %> 
    楼主这样写当然是空了,要先把fb负值再传!!
      

  8.   


    这里都new了怎么会是null? 在另一边取出来是null的原因是不同的request无法传递request范围的对象。。详见6楼
      

  9.   

    request来存储对象 需要序列化。   
    确定一个对象需要网络传输时,   则就给他实现Serializable,这接口没有任何方法,   你只要在声时类加上implements   Serializable就行了(java.io.Serializable)
    public   class FormBean implements  Serializable{   //加上这个看看
    }
      

  10.   

    你那样跳转的话,到了第二个页面中获取 到的request就不是你前一个页面风转对象的那个request了,你得通过forward请求转发才行。
      

  11.   

    呵呵,楼主不能这样写,这样写request根本就传不到下一个页,你表单什么也没提交,表单提交的才是请求,你虽然在请求里加上属性和值,但根本就没有提交啊,下一个页怎么可以收的到,你要放到session里才行.自己好好想一下.
      

  12.   

    request.setAttribute("aa",fb)
    request.getRequestDispatcher("test2.jsp").forward(request,response);
    把request一起传过去!
    那边request.getAttribute("aa");取出来.就OK了