test.jsp 如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import = "com.mod.FormBean" %><%
FormBean fb = new FormBean();
request.setAttribute("aa",fb);
%>
<html>
<head>
<script language="JavaScript" ></script>
</head><body>
<form name = "form1" action="test2.jsp" method="post">
<input type="submit" name="b1" value="submit">
</form>
</body>
</html>
--------
test2.jsp 如下<%
Object obj = request.getAttribute("aa");
out.println(obj.toString());
%>上例子中我想在test.jsp中把FormBean 传递到test2.jsp 中, 可是我用request.getAttribute("aa") 得到的是Null请问我如何做才能实现在jsp间传递java 对象? 请给代码参考,谢谢.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import = "com.mod.FormBean" %><%
FormBean fb = new FormBean();
request.setAttribute("aa",fb);
%>
<html>
<head>
<script language="JavaScript" ></script>
</head><body>
<form name = "form1" action="test2.jsp" method="post">
<input type="submit" name="b1" value="submit">
</form>
</body>
</html>
--------
test2.jsp 如下<%
Object obj = request.getAttribute("aa");
out.println(obj.toString());
%>上例子中我想在test.jsp中把FormBean 传递到test2.jsp 中, 可是我用request.getAttribute("aa") 得到的是Null请问我如何做才能实现在jsp间传递java 对象? 请给代码参考,谢谢.
request.getRequestDispatcher("目的页面.jsp").forward(request, response);
这种方法可以在同一个页面实现,
但我现在要求是,在test.jsp 点击后, 在新窗口中打开 test2.jsp, 并且把对象传递过去,请问如何实现??
如果要利用request传对象只能用forword方法来传递对象,但是可以通过其它方式传递对象所承载的数据。例如url重写或者标单的提交之类的。
用
<jsp:include 也可以, 当让
<jsp:forward 也可以啦!总之,如果不是这2种,只能用session/application
所以需要用 用 转发操作: request.getRequestDispatcher("目的页面.jsp").forward(request,response);
指名元素传递的方向对于你提出的: 但我现在要求是,在test.jsp 点击后, 在新窗口中打开 test2.jsp, 并且把对象传递过去,请问如何实现??
不能用 request.setAttribute()传递了 需要改变属性范围 使用 Application范围 也就是Application.setAttribute()方法传递对于有人提出的: 为什么不直接放在form里面呢from指明的是 参数传递的页面 和元素传递的页面是两回事情 上面的例子
<form name = "form1" action="test2.jsp" method="post">
<input type="submit" name="b1" value="submit">
指明参数传递路径并没有起到实际作用 因为并没有传递参数 请看下面例子实现简单的参数传递<form name = "form1" action="test2.jsp" method="post">
<input type="test" name="uname"> //传递的参数名字叫 uname 以后可以通过 request.getParameter("uname")接收它
<input type="submit" name="b1" value="submit"> 以上论述是个人意见 可能有不对的地方 欢迎高人指导
然后,再到一个新的页面test2.jsp,这时候的request是一个新的对象。如果你一定要把test.jsp传给服务器的参数传递给test2.jsp,又不想使用session,那么有个办法。就是在后台处理这个test.jsp传回来的参数的时候,手动把它设置到新的request对象里面。在类似于struts这样的mvc框架里面,我们经常这样作
打算做个servlet了.