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>

执行结果:

jsp:forward传值跳转例子


form.jsp传递给forward.jsp没有丢失,纵使forward.jsp没有把这个参数取下来再传递给result.jsp,但result.jsp同时能够获取到form.jsp与forward.jsp的参数,这就是Jsp中Forward指令的特性,原来页面的参数是不会丢失的。并且,地址栏显示的地址是forward请求页forward.jsp,整个页面读取出来的内容则是forward结果页result.jsp的内容。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。