Java 如何避免在包含的JSP文件中重新声明标记库?
我为我的webapp中的所有JSP制作了一个模板,使事情变得非常简单:Java 如何避免在包含的JSP文件中重新声明标记库?,java,jsp,include,jstl,Java,Jsp,Include,Jstl,我为我的webapp中的所有JSP制作了一个模板,使事情变得非常简单: <%@ include file="header.jsp" %> <!-- Put unique content here --> <%@ include file="footer.jsp" %> 我决定将导航菜单从header.jsp移到它自己的文件中,因为它越来越大。我将菜单的代码放入menu.jsp中。以下是include在我的header.jsp: <html>
<%@ include file="header.jsp" %>
<!-- Put unique content here -->
<%@ include file="footer.jsp" %>
我决定将导航菜单从header.jsp移到它自己的文件中,因为它越来越大。我将菜单的代码放入menu.jsp中。以下是include在我的header.jsp:
<html>
<head>
<title>My JSP</title>
</head>
<body>
<jsp:include page = "menu.jsp"/>
......
我的JSP
......
但是,menu.jsp将不起作用,除非我也将这一行放在其中:
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%>
这已经在我的header.jsp中了。我只想把它放在那里。但是,当我尝试使用此sytax时:
<%@ include file="menu.jsp" %>
我从WebLogic 11g收到一条错误消息,指出
<%@ include file="header.jsp" %> is self refrencing
是自引用的
如何在header.jsp中包含menu.jsp而不必在menu.jsp中包含JSTL?动态包含的jsp页面(
)如果使用taglib,则必须具有taglib声明,因为它是单独编译的
静态包含的JSP页面没有相同的限制,因为它被编译到servlet本身中
在使用标记库的JSP中声明标记库有什么大不了的?这使得它成为一个独立的“块”功能,可以在任何地方动态包含,自文档化,而不必担心包含它的页面:这是分解功能的目标。动态包含的JSP页面(
)如果使用taglib,则必须具有taglib声明,因为它是单独编译的
静态包含的JSP页面没有相同的限制,因为它被编译到servlet本身中
在使用标记库的JSP中声明标记库有什么大不了的?这使得它成为一个独立的功能“块”,可以动态地包含在任何地方,自我记录,而不必担心它所包含的页面:这是分解功能的目标。也许可以改为包含页面源代码的指令
,试试标准动作
或JSTL
,它只包括页面的动态响应,而不包括页面的代码。也许可以改为包含页面源代码的指令
,试试标准动作
或JSTL
,它只包括页面的动态响应,而不包括页面的代码。我没有那样看它。我的心态是尽量少重复。我还想知道我的解决方案是否“走错了路”@Steve这是Java,你注定要重复;)使用dynamic includes还可以实现真正简单的模板制作,而无需Tiles/SiteMesh/等的复杂性。虽然功耗较低,但通常已经足够了。LOL。我在学春天。AOP给我留下了深刻的印象,其他“新东西”(对我来说)减少了很多代码。@Steve AOP是一个非常棒的工具,使用得当。Spring的TX管理等功能非常适合AOP。AOP非常容易被滥用。。。但是很有趣,我不是这么看的。我的心态是尽量少重复。我还想知道我的解决方案是否“走错了路”@Steve这是Java,你注定要重复;)使用dynamic includes还可以实现真正简单的模板制作,而无需Tiles/SiteMesh/等的复杂性。虽然功耗较低,但通常已经足够了。LOL。我在学春天。AOP给我留下了深刻的印象,其他“新东西”(对我来说)减少了很多代码。@Steve AOP是一个非常棒的工具,使用得当。Spring的TX管理等功能非常适合AOP。AOP非常容易被滥用。。。但是很有趣。