首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加要包含在Liferay tomcat-6中的全局Jsp

添加要包含在Liferay tomcat-6中的全局Jsp
EN

Stack Overflow用户
提问于 2013-02-06 19:36:07
回答 2查看 1.6K关注 0票数 4

我有一个jsp,当用户打开任何Jsp时,它需要动态地包含在整个项目中。即,当用户打开一个jsp时,我的jsp应该自动包含进来。

这是我在Tomcat中用web.xml写的

代码语言:javascript
运行
复制
<jsp-property-group>
        <url-pattern>/webapps/ROOT/html/*.jsp</url-pattern>
        <url-pattern>*.jspf</url-pattern>
        <el-ignored>false</el-ignored>
        <scripting-invalid>false</scripting-invalid>
        <is-xml>false</is-xml>
        <include-prelude>/WEB-INF/jsp/tracker.jsp</include-prelude>
        <!-- <include-coda>/template/coda.jspf</include-coda> -->
</jsp-property-group>

我把我的jsp放在tomcat的WEB-INF/jsp/下,我想把它包含到每个项目中,因为它包含一个跟踪用户日志的代码。

或任何其他方式来实现这一点。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-06 20:06:00

有两种方法可以解决这个问题。

简单的方法是在主题中包含您的JSP。当您的主题应用于您的项目时,当呈现主题时,项目中的任何页面都将呈现此包含的JSP。

下面是代码示例。这必须放在vm文件(navigation.vm)中。

$theme.include($themeServletContext, "/jsp/yourJSPPageToBeIncluded.jsp")

在这里,JSP文件夹直接放在主题war中。

另一种方法(单调乏味)是在您希望包含此JSP的每个JSP页面中包含此JSP。

为此,请使用<jsp:include>元素。

一些参考文献,

Ref1 Ref2

票数 1
EN

Stack Overflow用户

发布于 2013-02-07 16:08:34

还有一种方法可以包含整个门户的JSP,也就是dockbar。

您可以创建一个钩子,并使用<jsp:include /><liferay-util:include />或简单的<%@ include file="" /> (这将是静态的)将您的jsp包含在/html/portlet/dockbar/view.jsp中。

代码语言:javascript
运行
复制
<jsp:include page="/jsp/yourJSPPageToBeIncluded.jsp" />

代码语言:javascript
运行
复制
<liferay-util:include page="/jsp/yourJSPPageToBeIncluded.jsp" />

代码语言:javascript
运行
复制
<%@ include file="/jsp/yourJSPPageToBeIncluded.jsp" />

注意:路径可能因JSP的放置位置不同而有所不同。

我之所以选择dockbar,是因为它出现在liferay的所有门户页面上。如果您正在打开一个弹出窗口,如配置弹出窗口、外观弹出窗口或其他自定义对话框弹出窗口,这将不起作用,因为dockbar不在弹出窗口中。要在弹出窗口中使用,您必须覆盖自定义主题中的portal_pop_up.vm,并按照@VikasV的建议编写代码

代码语言:javascript
运行
复制
$theme.include($themeServletContext, "/jsp/yourJSPPageToBeIncluded.jsp")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14728100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档