2012-06-07 2 views
0

У меня есть две страницы для регистрации. На одном я получаю пользовательские данные в обработанном запросом компоненте, а на следующем я показываю собранные данные. На второй странице есть кнопка для перенаправления пользователя для входа в систему.не переадресовывание или перенаправление jsf

Это действие кнопки для register.xhtml. Результатом regUser.register является reg_success, который является именем второй страницы, где я показываю пользовательские данные.

 <p> 
      <h:commandButton value="#{msgs.regButtonText}" action="#{regUser.register}"/> 
     </p> 

В reg_success.xhtml у меня есть этот код для кнопки:

 <p> 
      <h:commandButton value="#{msgs.regToLogin}" action="login"/> 
     </p> 

Моя страница Войти имеет имя login.xhtml.

Даже если я вставляю это правило навигации в свои лица-config.xml, пересылка не происходит. Действительно, из register.xhtml пользователь пересылается, и URL-адрес не изменяется на второй странице.

<navigation-rule> 
     <from-view-id>/reg_success.xhtml</from-view-id> 
    <navigation-case> 
     <from-outcome>login</from-outcome> 
     <to-view-id>/login.xhtml</to-view-id> 
     <redirect/> 
    </navigation-case> 
</navigation-rule> 

ответ

2

The <h:commandButton> работает только тогда, когда он находится внутри <h:form>. См. Также первый пункт commandButton/commandLink/ajax action/listener method not invoked or input value not updated.

Но в данном конкретном случае вам не нужен запрос POST. Просто используйте <h:button>. Это создает запрос GET без необходимости в <h:form>.

<h:button value="#{msgs.regToLogin}" outcome="login" /> 
Смежные вопросы