Где фотографии моей страницы JSF? - PullRequest
1 голос
/ 19 июня 2011

У меня есть такое правило навигации в моем приложении JSF 2:

<navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
        <from-action>#{myBean.goToMyHome1}</from-action>
        <from-outcome>myHome1.xhtml</from-outcome>
        <to-view-id>/myhome1/myHome1.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>

Когда я помещаю h:commandLink в myHome2.xhtml в каталоге myhome2, которые удовлетворяют этому правилу, страница myHome1.xhtml будет отображаться, но на странице нет изображений.Куда они идут?За приложением стоит Springsecurity 3 с этим конфигом:

<sec:intercept-url pattern="/myhome1/**" access="hasAnyRole('ROLE1','ROLE2')" />

<sec:intercept-url pattern="/myhome2/**" access="hasRole('ROLE2')" />

1 Ответ

0 голосов
/ 19 июня 2011

Это выглядит так, как будто URL-адреса ваших изображений относительно текущего пути URL-адреса.Например,

<img src="images/picture.png" />

Когда вы открываете страницу с помощью

http://example.com/contextname/myHome1.xhtml

, тогда URL изображения будет фактически указывать на

http://example.com/contextname/images/picture.png

Но когда вы откроете страницу по

http://example.com/contextname/myhome/myHome1.xhtml

, тогда URL изображения будет эффективноуказать на

http://example.com/contextname/myhome/images/picture.png

Вам необходимо исправить это соответствующим образом.Есть несколько способов.Используйте относительный к домену путь

<img src="/contextname/images/picture.png" />

Или добавьте динамическое имя контекста

<img src="#{request.contextPath}/images/picture.png" />

Или просто используйте <h:graphicImage>, который сделает это автоматически

<h:graphicImage value="/images/picture.png" />
...