包含另一个JSP文件

我目前正在学习JSP。 我的问题是,目前我曾经使用包括页面的页眉和页脚:

<%@include file="includes/header.jsp" %> 

 <%@include file="includes/footer.jsp" %> 

但现在,我也分离了页面内容。 所以,如果用户点击一个页面,说产品,它必须加载位于: includes/pages/products.jsp的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" %> <% } %> 

那么,如何将variables“p”的值放在“page_name”的位置呢?

或者,有没有其他方法可以使用?

在PHP中,我们可以使用include()include_once() 。 我有点卡在这个JSP。 🙁

你在做什么是一个静态的包括。 静态包含在编译时被parsing,因此可能不使用仅在执行时已知的参数值。

你需要的是一个dynamic的包括:

 <jsp:include page="..." /> 

请注意,您应该使用JSP EL而不是scriptlet。 似乎你正在用index.jsp实现一个中央控制器。 您应该使用一个servlet来完成这个任务,并从这个servlet中派发到相应的JSP。 或者更好,使用Stripes或Spring MVC等现有的MVC框架。

您可以使用包含指令

 <% if(request.getParameter("p")!=null) { String p = request.getParameter("p"); %> <%@include file="<%="includes/" + p +".jsp"%>"%> <% } %> 

JSP包含操作

 <% if(request.getParameter("p")!=null) { String p = request.getParameter("p"); %> <jsp:include page="<%="includes/"+p+".jsp"%>"/> <% } %> 

include指令在翻译阶段包含一个文件。 而JSP Include Action在请求页面时包含一个文件

我推荐Spring MVC框架作为你的控制器来操纵事物。 使用url模式而不是参数。

例:

 www.yourwebsite.com/products 

代替

 www.yourwebsite.com/?p=products 

观看这个videoSpring MVC框架

你可以使用这样的参数

 <jsp:include page='about.jsp'> <jsp:param name="articleId" value=""/> </jsp:include> 

在about.jsp中,你可以采取参数

 <%String leftAds = request.getParameter("articleId");%> 

1. <a href="index.jsp?p=products">Products</a>当用户点击产品链接时,可以直接调用products.jsp。

我的意思是你可以保持JSP文件的名称与参数Value相同。

 <% if(request.getParameter("p")!=null) { String contextPath="includes/"; String p = request.getParameter("p"); p=p+".jsp"; p=contextPath+p; %> <%@include file="<%=p%>" %> <% } %> 

要么

2.您可以使用键,值对维护外部资源文件。 如下所示

products : products.jsp

customer : customers.jsp

您可以以编程方式从合适的文件中检索JSP文件的名称。

这样你可以很方便的改变JSP文件的名字

在页面转换时,include指令中给出的文件的内容被“粘贴”,就像使用JSP include指令的地方一样。 然后将源JSP页面转换为java servlet类。 包含的文件可以是一个静态资源或一个JSP页面。 通常,JSP include指令用于包含页眉横幅和页脚。

包含一个jsp文件的语法:

 <%@ include file="relative url"> 

 <%@include file="page_name.jsp" %>