jsp:forward如何传参数进行传值跳转
jsp:forward在进行跳转时,如果需要传参数到跳转的页面,只需要通过jsp:param在转发时增加额外的请求参数,请求参数的值可以通过HttpServletRequest类的getParameter()方法获得。
传值语法
<jsp:forward page="{relativeURL|<%=expression%>}"> {jsp:param..../>} </jsp:forward>
通过jsp:param来进行参数设置,可以有多个,调整的时候这些参数会同时带到跳转侯的页面。
例子
//表单提交页面form.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <form method="post" action="forward.jsp"> <input type="text" name="formPageParam" /> <input type="submit" value="go!" /> </form> </body> </html>
//跳转页面forward.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <jsp:forward page="result.jsp"> <!-- 这里传值 --> <jsp:param value="forwardPageParamValue" name="forwardPageParam"/> </jsp:forward> </body> </html>
//跳转后页面result.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <!--接收传过来的参数值--> <%=request.getParameter("formPageParam")%> <%=request.getParameter("forwardPageParam")%> </body> </html>
执行结果:

form.jsp传递给forward.jsp没有丢失,纵使forward.jsp没有把这个参数取下来再传递给result.jsp,但result.jsp同时能够获取到form.jsp与forward.jsp的参数,这就是Jsp中Forward指令的特性,原来页面的参数是不会丢失的。并且,地址栏显示的地址是forward请求页forward.jsp,整个页面读取出来的内容则是forward结果页result.jsp的内容。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。