4

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

我在Tomcat的web.xml中写了这个

<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 保存在 WEB-INF/jsp/ 下的 tomcat 中,我想将它包含到每个 porject 中,因为它包含一个跟踪用户日志的代码。

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

谢谢。

4

2 回答 2

4

还有另一种方法可以为整个门户和停靠栏包含您的 JSP。

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

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

或者

<liferay-util:include page="/jsp/yourJSPPageToBeIncluded.jsp" />

或者

<%@ include file="/jsp/yourJSPPageToBeIncluded.jsp" />

注意:路径可能会有所不同,具体取决于您将放置 JSP 的位置。

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

$theme.include($themeServletContext, "/jsp/yourJSPPageToBeIncluded.jsp")
于 2013-02-07T08:08:33.643 回答
1

有两种方法。

简单的方法是将您的 JSP 包含在主题中。当你的 Theme 被应用到你的项目中,并且当 Theme 被渲染时,你项目中的任何页面都会渲染这个包含的 JSP。

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

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

这里,JSP 文件夹直接放在 Theme war 里面。

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

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

一些参考资料,

参考 1 参考 2

于 2013-02-06T12:05:59.953 回答