在我的第一个博客上对jsp中的包含进行了说明,这里对其中的参数传值进行补充:
这是一个网站注册的例子 头部作为单独的一部分包含到主页面中,在注册完后 需要对头部的jsp传参。 代码如下: indexservlet.java中的函数: private void doregist(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { // TODO Auto-generated method stub String registerusername=request.getParameter("registerusername"); registerusername = new String(registerusername.getBytes("ISO-8859-1"), "utf-8"); String registerpassword=request.getParameter("registerpassword"); String code=request.getParameter("code"); request.getRequestDispatcher("index.jsp").forward(request, response); Userinfodao userinfodao=new Userinfodao(); userinfodao.inputuser(registerusername, registerpassword); /*response.getWriter() request.setAttribute("username", registerusername); } index.jsp中包含的代码 <div class="head"> <jsp:include page="Head.jsp"> <jsp:param value="${username}" name="username" /> </jsp:include> </div> 这里说明下 参值可通过标签<jsp:param value="${username}" name="username" /> value为值, name为作为传值的变量。 Head.jsp <c:set value="${param.username}" var="talib"></c:set> //这里就是通过el表达式的到index.jsp中通过标签 <jsp:param >传过来的值 <c:set value="" var="tali"></c:set> //${param.username} 类似request.getparameter("username")得带标签<jsp:param >中变量username的值 <c:if test="${ talib ne tali}"> <script type="text/javascript"> document.getElementById("logina").style.display="none"; document.getElementById("registera").style.display="none"; document.getElementById("c-header-right-user-name").style.display="block"; document.getElementById("c-header-right-user-name").innerHTML=${talib }; </script> </c:if> 这里通过jstl形式表达出来,若想拷贝代码测试需要添加<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>