Навигация по JSF 2.0 по commandLink и commandButton не работает - PullRequest
6 голосов
/ 22 ноября 2011

Я использую JSF 2.0, и у меня проблема с навигацией после commandLink и commandButton. Я использую следующий код:

<h:commandLink action="login?faces-redirect=true" 
    value="#{showElementBean.showElement()}"> Login </h:commandLink>  

<h:commandButton action="login?faces-redirect=true" value="Move to login.xhtml" />

Эти теги находятся внутри формы, логин это только пример. Результатом нажатия на визуализированные элементы управления всегда является POST с обновлением текущей страницы. Что я не прав?

Edit: Согласно комментариям BalusC я добавляю фрагмент реального кода:

<h:commandLink actionListener="#{showElementBean.showElement(element)}" 
    value="View" > </h:commandLink>

У меня есть страница со списком элементов, и я хочу добавить ссылки, которые ведут на страницу просмотра элементов. Таким образом мне нужно передать этот элемент на страницу шоу. Я начинающий JSF, например в Rails я бы использовал параметры GET и URL, но я не знаю, как это сделать «в JSF».

Ответы [ 4 ]

10 голосов
/ 22 ноября 2011

Существует множество возможных причин такого поведения.Все они цитируются в следующем ответе вместе с решениями: commandButton / commandLink / ajax action / listener метод не вызывается или входное значение не обновляется .

Однако в вашем конкретном случае выскорее, вас интересуют простые запросы GET, а не запросы POST, поскольку все, что вам нужно, - это простая постраничная навигация.В этом случае вам нужно вместо <h:link> или <h:button>:

<h:link outcome="login" value="Login" />

<h:button outcome="login" value="Move to login.xhtml" />

(я понятия не имею, что вы пытаетесь сделать с оба #{showElementBean.showElement()} и Login в качестве значения ссылки на команду, поэтому я пропустил первое)

См. также:

0 голосов
/ 06 августа 2013

Я также столкнулся с этой проблемой, и добавление <h:form><h:commandLink></h:commandLink> </h:form> решило мою проблему.

0 голосов
/ 16 июля 2012

Заметил, что метод вспомогательного компонента не вызывается, если форма предназначена для загрузки файла: <h:form name="searchForm" enctype="multipart/form-data" method="post" action="/search">

0 голосов
/ 22 ноября 2011

См. Эту информацию: Теги JSF HTML

h: commandButton

Тег commandButton отображает кнопку отправки HTML, которая можетбыть связанным с компонентом поддержки или классом ActionListener для обработки событий.Отображаемое значение кнопки также можно получить из пакета сообщений для поддержки интернационализации (I18N).

Пример

<h:commandButton id="button1" value="#{bundle.checkoutLabel}" action="#{shoppingCartBean.checkout}" />

Вывод HTML

<input id="form:button1" name="form:button1" type="submit" value="Check Out" onclick="someEvent();" /> 

h: commandLink

Тег commandLink визуализирует тег привязки HTML, который работает как кнопка отправки формы и может быть связан с базовым компонентом или классом ActionListener для обработки событий.Отображаемое значение ссылки также можно получить из пакета сообщений для поддержки интернационализации (I18N).

Пример

<h:commandLink id="link1" value="#{bundle.checkoutLabel}" action="#{shoppingCartBean.checkout}" /> 

Вывод HTML

<a href="#" onclick="someEvent();" id="form:link1">Check Out</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...