使用托管 Bean 进行导航



我正在 JSF 2.2 中处理一个简单的项目,但在某些页面之间导航时遇到了一些问题。在项目中,我有一个通用模板,所有视图都是该通用模板的模板客户端。

这是我遇到麻烦的观点:

<h:body>
    <ui:composition template="./LayoutGeneral.xhtml">
        <ui:define name="content">
            <p:commandButton value="Registrar Comunidad" action="#{comunidadBean.irRegisterView}"/>
        </ui:define>
    </ui:composition>
</h:body>

在命令按钮的操作中,我从托管 bean 调用了一个方法(Thar 托管 bean 有其他方法,我调用它们来更改页面,它们工作正常,但此方法没有):

(管理豆)

@ManagedBean
@SessionScoped
public class ComunidadBean {    
    private String idComunidad;
    private String idPresidente;
    private String calle;
    private int numero;
    private int nVecinos;
    @EJB
    private ComunidadDAO ejb;
    public String register(){
        if(ejb.realizaRegistro(this)){
            return "principalView";
        } else{
            FacesMessage fm = new FacesMessage ("No se pudo registrar");
            FacesContext.getCurrentInstance().addMessage("msg", fm);
            return null;
        }
    }
    public String irRegisterView(){
        return "registroCView";
    }
}

因此,方法"注册"工作正常,页面更改,但方法"irRegisterView"无法导航到"registroCView"页面。

有人知道发生了什么吗?

谢谢!

我可以发表评论,所以我写这个作为答案。

  • 我看你的豆子SessionScoped.您需要实现Serializable因为 SessionScoped Bean 在一段时间后处于钝化状态。
  • 你有LayoutGeneral.xhtml表格吗?否则,此代码将永远不起作用,因为命令按钮需要位于窗体中。
  • 为什么将该方法称为属性?在 JSF 2.2 和 EL 2.3 中,可以调用如下方法:#{comunidadBean.isRegisterView()} .
  • 单击按钮时是否引发一些异常?如果是,请粘贴堆栈跟踪。

相关内容

  • 没有找到相关文章

最新更新