0

我正在尝试在页面加载时调用 bean 操作,bean 已在会话范围内注册。

我已经用这样的js完成了这个:- document.getElementById('form1:show_data').click();

我知道它可以通过在 bean 构造函数中调用动作来完成,但在会话范围内,动作只被调用一次。在 JSF 1 中还有其他方法吗?

4

1 回答 1

1

您仍然可以在请求范围内创建另一个 bean,并在其构造函数中获取会话 bean 并调用您需要调用的任何内容。

public RequestScopedBean() {
    FacesContext fc = FacesContext.getCurrentInstance();

    SessionScopedBean ssb = (SesssionScopedBean) fc
        .getApplication()
        .getVariableResolver()
        .resolveVariable(fc, "sessionScopedBean");
    ssb.callSomething();
}

您仍然必须以某种方式在视图中引用请求范围的 bean,以确保它会被创建。

这将做:

<f:subview rendered="#{requestScopedBean = null}" />
于 2018-01-02T11:43:29.373 回答