Невозможно получить путь к сервлету в jsf

Я написал портлет liferay richfaces. Но я не могу получить путь CSS или изображения в папке web-inf. Мой конфиг портлета

 <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

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

1 ответ

Решение

Посмотрите, как я могу получить доступ к моим файлам, которые находятся в папке 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();

Надеюсь это поможет.

Другие вопросы по тегам