2013-10-02 2 views
0

Я использую перформаны 3.1, в строке я хочу добавить значок. Когда пользователь нажимает на значок, он будет непосредственно на странице home.jsf. Когда пользователь нажимает значок, страница идет к индексу, но его URL-адрес кажется другим. Спасибо за помощь.primefaces- graphic image not direct a url

<p:menuitem > 
    <p:commandLink action="home.jsf" > 
    <p:graphicImage height="24" 
        width="24" 
        value="resources/images/home.ico" 
        style="border:none" />  
    <p:commandLink> 
</p:menuitem> 

ответ

2

При подаче из <h:form> любых компонентов команд, как <h/p:commandButton> или <h/p:commandLink> JSF выполняет вперед, а не перенаправление. Вот почему ваш URL-адрес остается прежним. Просто добавьте ?faces-redirect=true в свой атрибут action, и он будет работать так, как ожидалось. Для разницы посетите ответы BalusC на номера What is the difference between redirect and navigation/forward and when to use what? и How to navigate in JSF? How to make URL reflect current page (and not previous one).

Сказанное говорит о том, что выполнять навигацию с использованием компонентов команд является плохой практикой. Вместо этого используйте <h:link> или <h/p:button>. Они вызывают запрос на получение результатов действия навигации, таким образом, ваш URL-адрес изменится. Компоненты команд предназначены для запуска действий сервера, а не для простой навигации. Для получения дополнительной информации см. Ответ BalusC на When should I use h:outputLink instead of h:commandLink?.

+0

Спасибо за ваш ответ – Deniz

+0

Добро пожаловать! – skuntsel