我正在寻找帮助/建议,使用相当于PHP include + switch函数创建简单的JSP网站.
目标是我希望能够在一个主页面中的多个JSP包含页面之间切换.
上面"函数"最简单的形式是什么?
我需要定义一个名为"include"的jsp标记.它应该用作:
<cms:include page="/aaa.jsp" />
Run Code Online (Sandbox Code Playgroud)
它有一个page指向另一个jsp 的属性,它将包含该jsp的内容并呈现它.
是否有任何现有标签lib可以做到这一点?或者请给我一些实施它的建议,谢谢!
UPDATE
根据Ramesh PVK的回答,我知道<jsp:include>我的需要符合标准.
但根据我的项目要求,我可以使用名称jsp:include,但是cms:include.我已经定义了一些具有前缀的其他标签cms,并且include一个标签应该具有相同的前缀.
是否有可能找到该tld文件jsp:include?我可以将声明复制到我的tld文件,以重用带有新前缀的标记.
我正在我的基于 JSP 的 web 应用程序中做一些基本的模板。例如,我想要将标准页眉和页脚(基本 HTML)拉入我的每个 JSP 中。
我的内容 JSP 位于/WEB-INF/jsp/home.jsp,并且我的模板 JSP 位于/WEB-INF/jsp/template/,例如/WEB-INF/jsp/template/Body-Footer.jsp.
所以现在,在 内home.jsp,我想拉入我的模板文件。首先,我尝试以下jsp:include操作:
<jsp:include page="template/Body-Footer.jsp"></jsp:include>
Run Code Online (Sandbox Code Playgroud)
它产生错误 javax.servlet.ServletException: File "/template/Body-Footer.jsp" not found
对我来说很奇怪,考虑到 Eclipse 说路径是有效的。
好的,那么我切换到包含指令:
<%@ include file="template/Body-Footer.jsp" %>
Run Code Online (Sandbox Code Playgroud)
这工作得很好,拉入我的页脚 HTML。
但为什么不起作用jsp:include?经过一些实验,我发现放入绝对路径确实可以让它工作:
<jsp:include page="/WEB-INF/jsp/template/Body-Footer.jsp"></jsp:include>
Run Code Online (Sandbox Code Playgroud)
现在它工作正常,没有错误。
所以这是我的问题:为什么?为什么我(显然)需要在操作中使用绝对路径jsp:include,而不是在 include 指令中使用?
针对home.jsp
<jsp:useBean id="username" class="java.lang.String" scope="application"/>
<%
username="Jitendra";
%>
<jsp:include page="include.jsp"/>
Run Code Online (Sandbox Code Playgroud)
include.jsp
<%=username%>
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误,即在include.jsp中未定义"username",即使Bean的范围是应用程序...