2

我写了一个liferay richfaces portlet。但我无法获取 web-inf 文件夹中的 css 路径或图像。我的 portlet 配置是

 <portlet>
    <portlet-name>testLR6_PB3_RF4</portlet-name>
    <instanceable>true</instanceable>

    <render-weight>1</render-weight>
    <ajaxable>true</ajaxable>
    <header-portlet-css>/resources/css/style.css</header-portlet-css>
        <header-portlet-javascript>/js/eims.js</header-portlet-javascript>
        <footer-portlet-javascript>/js/fileupload.js</footer-portlet-javascript>
  </portlet>

在我的 jsf 页面中

<link href="${facesContext.externalContext.requestContextPath}/resources/css/style.css" rel="stylesheet" type="text/css" />

<div class="floatleft1"><img src="${facesContext.externalContext.requestContextPath}/resources/images/eims_logo.jpg"  /></div>

如何获取资源路径。

这是我的 java servletcontext 代码

FacesContext context = FacesContext.getCurrentInstance();
        ServletContext servletContext= (ServletContext) context.getCurrentInstance().getExternalContext().getContext();
        String path=servletContext.getRealPath("/");
        MainBean mainBean = new MainBean();
        mainBean.getUserBean().setUserPath(path);
4

1 回答 1

15

看看我怎样才能访问放在 WEB-INF 文件夹中的文件。它可能会有所帮助。此外,如果您使用 JSF 2.0,Facelets,您可以简单地在您的 jsf 页面中获取您的上下文根:

<ui:param name="root" value="#{request.contextPath}" />

并且无论您需要访问上下文根中的文件,您都可以访问它们(假设示例)

<img src="#{root}/resources/images/sample.jpg" />

在java端,你可以得到上下文路径

String contextPath = FacesContext.getCurrentInstance().getExternalContext().getContextName();

希望这可以帮助。

于 2013-09-27T06:56:08.053 回答