HtmlInputHidden with java.io.NotSerializableException
我将JSF应用程序中的上下文参数javax.faces.STATE_SAVING_METHOD从HtmlInputHidden with java.io.NotSerializableException,java,jsf-2,serializable,Java,Jsf 2,Serializable,我将JSF应用程序中的上下文参数javax.faces.STATE_SAVING_METHOD从server更改为client,但现在我得到: java.io.NotSerializableException: javax.faces.component.html.HtmlInputHidden 这会中断视图渲染 由于HtmlInputHidden来自第三方jar,我自己无法实现它 有什么办法解决这个问题吗?在HtmlInputHidden声明中使用transient关键字解决: privat
server
更改为client
,但现在我得到:
java.io.NotSerializableException: javax.faces.component.html.HtmlInputHidden
这会中断视图渲染
由于HtmlInputHidden
来自第三方jar,我自己无法实现它
有什么办法解决这个问题吗?在
HtmlInputHidden
声明中使用transient
关键字解决:
private transient HtmlInputHidden htmlInputHidden;
正如@millimoose所说,
saveSate()
方法控制状态;不是序列化。在HtmlInputHidden
声明中使用transient
关键字解决:
private transient HtmlInputHidden htmlInputHidden;
正如@millimoose所说,
saveSate()
方法控制状态;不是序列化。为什么组件首先处于视图状态?这似乎是错误的,组件树应该基于视图状态和模板重建,而不是从中反序列化。@millimoose,对不起,但我不理解你的问题。我想说的是HtmlInputHidden
(或任何其他组件实现)一开始就不需要序列化,因此根本不需要是可序列化的。在JSF中,整个组件不是直接序列化的;您只能序列化其状态的一部分-从包装在Serializable
对象中的saveState()
方法返回。因此,我会尝试拨动代码/调试器,看看您是否能够找到HtmlInputHidden
实例被序列化的原因。为什么组件首先处于视图状态?这似乎是错误的,组件树应该基于视图状态和模板重建,而不是从中反序列化。@millimoose,对不起,但我不理解你的问题。我想说的是HtmlInputHidden
(或任何其他组件实现)一开始就不需要序列化,因此根本不需要是可序列化的。在JSF中,整个组件不是直接序列化的;您只能序列化其状态的一部分-从包装在Serializable
对象中的saveState()
方法返回。因此,我会尝试拨动代码/调试器,看看您是否能够找到HtmlInputHidden
实例被序列化的原因。