我目前正在尝试学习JSP。我的问题是,目前,我以前使用以下方式包含页面的页眉和页脚:
<%@include file="includes/header.jsp" %>
和
<%@include file="includes/footer.jsp" %>
但是现在,我也将页面内容分开了。因此,如果用户单击某个页面(例如产品),则必须加载位于以下位置的JSP文件:includes/pages/products.jsp 因此,到用户的链接就像:<a href="index.jsp?p=products">Products</a>。
includes/pages/products.jsp
<a href="index.jsp?p=products">Products</a>
因此,我必须获取p值并基于它显示页面。
以下是我到目前为止所做的事情。
<% if(request.getParameter("p")!=null) { String p = request.getParameter("p"); %> <%@include file="includes/page_name.jsp" %> <% } %>
那么,如何将变量“ p”的值放在“ page_name”的位置?
或者,还有其他我可以使用的方法吗?
在PHP中,我们可以使用include()或include_once()。我对这个JSP有点困惑。:(
include()
include_once()
您正在执行的是静态包含。静态包含将在编译时解析,因此可能不使用仅在执行时才知道的参数值。
您需要的是动态包括:
<jsp:include page="..." />
注意,您应该使用JSP EL而不是scriptlet。似乎您正在用index.jsp实现中央控制器。您应该使用servlet代替,并从该servlet调度到适当的JSP。或者更好的方法是使用现有的MVC框架,例如Stripes或Spring MVC。