Java 在JSF2中导航到子文件夹中的页面不起作用

Java 在JSF2中导航到子文件夹中的页面不起作用,java,jsf,jsf-2.2,Java,Jsf,Jsf 2.2,我遇到了以下问题:我有一个文件夹层次结构,其中我分隔了我的项目网页: Web |- Acoes | |- usuariosAcoes.xhtml | |- cadastrarAcao.xhtml |- usuarios | |- listarUsuarios.xhtml | |- cadastrarUsuario.xhtml 但是,当我尝试在ManagedBean中导航时,页面不会加载,只有当我尝试访问当前页面文件夹之外的页面时,才会更新当前页面 例如,如果我在li

我遇到了以下问题:我有一个文件夹层次结构,其中我分隔了我的项目网页:

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"; }
或:


那么我该如何解决这个问题呢?记住不要使用faces-config.xml创建路由,因为JSF2.x已经对其进行了抽象。

如果我理解的话,我在4天前也遇到了同样的问题

当您使用按钮中的操作导航到另一页时,该按钮仅呈现当前页中的目标页

我使用这个解决方案:

public void navigateTo(String href) {
        try {
        FacesContext.getCurrentInstance().getExternalContext().redirect("MYSERVERADDRESS" + href);
    } catch (IOException ex) {
    }
}
在您的操作中,您可以使用“navigateTo(“page.xhtml”)”而不是将地址返回到按钮的操作

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

public void acessarAcoesUsuario(){
    navigateTo("/Acoes/usuariosAcoes.xhtml");
}
改为使用“上下文路径”。(从纯技术角度来看,
faces config.xml
中的导航规则并没有过时)。
public void acessarAcoesUsuario(){
    navigateTo("/Acoes/usuariosAcoes.xhtml");
}