2015-11-09 3 views
0

У меня следующая проблема: У меня есть иерархия папок, где я отделить мой проект веб-страницы:переход на страницы в подпапки в JSF 2 не работает

Web 
|- Acoes 
| |- usuariosAcoes.xhtml 
| |- cadastrarAcao.xhtml 
|- usuarios 
| |- listarUsuarios.xhtml 
| |- cadastrarUsuario.xhtml 

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

Например, если я нахожусь в listarUsuarios.xhtml странице, и я пытаюсь получить доступ к странице с помощью ManagedBean cadastrarUsuario.xhtml все работает:

public String acessaCadastro(){ return "cadastrarUsuario"; } 

Но если я на странице списка Usuarios.xhtml и попробовать для доступа usuariosAcoes.xhtml, который находится в другой папке, ничего не происходит, только перезагружает страницу, я уже нахожусь:

public String acessarAcoesUsuario(){ return "usuariosAcoes"; } 

Я попытался это, но не решало:

public String acessarAcoesUsuario(){ return "Acoes/usuariosAcoes"; } 

так: не

public String acessarAcoesUsuario(){ return "../Acoes/usuariosAcoes"; } 

и даже тогда:

public String acessarAcoesUsuario(){ return "Acoes/usuariosAcoes.xhtml"; } 

или:

public String acessarAcoesUsuario(){ return "../Acoes/usuariosAcoes.xhtml"; } 

Так как же я могу решить эту проблему? Помня, что не использовать faces-config.xml для создания маршрутов, поскольку JSF 2.x уже абстрагирует его.

+0

Работа с "* контекстного пути *" вместо этого. (Для чистой технической точки зрения, правила навигации в 'faces-config.xml', кстати, не устарели). – Tiny

ответ

0

Если я понимаю, у меня такая же проблема 4 дня назад.

Когда вы используете действие для перехода на другую страницу, кнопка отображает только целевую страницу на текущей странице.

Я использую это решение:

public void navigateTo(String href) { 
     try { 
     FacesContext.getCurrentInstance().getExternalContext().redirect("MYSERVERADDRESS" + href); 
    } catch (IOException ex) { 
    } 
} 

В ваших действий, вы можете использовать "navigateTo (" page.xhtml ")" InstEd возвращения адреса к действию Баттона.

public String acessarAcoesUsuario(){ 
    navigateTo("/Acoes/usuariosAcoes.xhtml"); 
    return ""; 
} 

или просто

public void acessarAcoesUsuario(){ 
    navigateTo("/Acoes/usuariosAcoes.xhtml"); 
} 
+0

Работайте отлично, спасибо! –

Смежные вопросы