Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JSF: переход по ссылке не работает


Автор: Andrey1 12.4.2008, 15:08
Странная ситуация... Есть две страницы: на странице1 есть ссылка (компонента "Hyperlink" в Woodstock), которая должна переводить на страницу2, в которой есть ссылка на страницу1.

В итоге: со страницы2 на страницу1 попасть можно. А со страницы1 на страницу2 - нет  (пишет "description: The requested resource () is not available.") :/ ...

Да и почему-то в строке адреса вместо URL к новой странице отображается: .../page2.jsp?form1:hyperlink1_submittedLink=form1:hyperlink1


Автор: Andrey1 12.4.2008, 15:34
Разобрался... URL у ссылки почему-то оказался битым... :(

Но вторая часть вопроса остается smile...

Автор: Andrey1 17.4.2008, 15:38
А вторая часть вопроса по-прежнему актуальна: почему при нажатии на ссылку, строка браузера не переходит на URL этой страницы?...  smile 
В бине страницы с ссылкой связывается стандартный action:
Код

...
    public String hyperlink2_action()
    {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        return "case2";
    }
...


В правилах навигации "case2" - переход к новой странице... 

Вместо этого, отображается примерно это: http:// localhost:8080/web/faces/Page2.jsp?form1:layoutPanel1:hyperlink2_submittedLink=form1:layoutPanel1:hyperlink2

Причем браузер новую страницу отображает правильно...

Казалось бы и фиг с ним, что не обновляет URL, но как тогда страницу рефрешить/перегружать?...

Автор: ivg 18.4.2008, 06:51
Не знаю как там в Woodstock, но судя по описанию поведение похоже на обычный <h:commandLink ... />, т. е. при нажатии на ссылку происходит сабмит формы. Странно однако, что используется GET вместо POST, соответствующий компонент Woodstock наверно это позволяет. Вобщем, с точки зрения <h:commandLink ... />, предлагаю 2 варианта:
1. Использовать <h:outputLink ... /> или что-то подобное из Woodstock  вместо того, что есть сейчас. Клик по этой ссылке заставит браузер перейти по указанному URL вместо сабмита формы на текущей странице.
2. В правилах навигации "case2" добавить тег <redirect /> т. е. это будет выглядеть примерно так:
Код

<navigation-case>
  <from-outcome>case2</from-outcome>
  <to-view-id>/faces/Page1.jsp</to-view-id>
  <redirect/>
</navigation-case>

Кстати, а в правилах навигации ошибок нет? (имеется ввиду case2 --> Page1 и case1 --> Page2, ну или как там у вас).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)