【问题标题】:ViewState decoding in Mojarra 2.1Mojarra 2.1 中的 ViewState 解码
【发布时间】:2015-08-27 12:53:46
【问题描述】:

Mojarra 2.1

我正在尝试找到将javax.faces.ViewState 参数解码为类似地图结构的位置。在UIComponent 抽象类中,我没有找到与RestoreView 阶段相关的方法,它接受字符串作为parameter。方法

public void restoreTransientState(FacesContext context, Object state)
{
    boolean forceCreate = (state != null);
    TransientStateHelper helper = getTransientStateHelper(forceCreate);

    if (helper != null) {
        helper.restoreTransientState(context, state);
    }
 }

据我了解,接受已解码的视图状态并检索之前保存的特定组件的状态。

【问题讨论】:

    标签: jsf jsf-2 viewstate


    【解决方案1】:

    这取决于状态保存方法(服务器与客户端)。

    在客户端状态保存的情况下,解码javax.faces.ViewState请求参数的逻辑位于com.sun.faces.renderkit.ClientSideStateHelper#getState()和随后的doGetState()

    在服务器端状态保存的情况下,使用javax.faces.ViewState请求参数表示的标识符从会话中获取和解码状态对象的逻辑位于com.sun.faces.renderkit.ServerSideStateHelper#getState()

    无论哪种方式,抽象 API 都由ResponseStateManager#getState() 表示,它在StateManagementStrategy#restoreView() 中调用,而ViewHandler#restoreView() 又在ViewHandler#restoreView() 中调用。前面链接的 javadocs 详细描述了该过程。

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多