View java.io.NotSerializableException:javax.faces.component.html.HtmlForm
我为bean类使用了视图范围。 当我运行应用程序时,出现了错误(JSF2.0,Richfaces3.3.3) 如果使用会话作用域,则以下代码可以正常工作 sample.jspView java.io.NotSerializableException:javax.faces.component.html.HtmlForm,view,jsf-2,managed-bean,View,Jsf 2,Managed Bean,我为bean类使用了视图范围。 当我运行应用程序时,出现了错误(JSF2.0,Richfaces3.3.3) 如果使用会话作用域,则以下代码可以正常工作 sample.jsp <f:view> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> &l
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h:form id="sampleForm" binding="#{Sample.initForm}">
<h:outputText value="This is sample form"/>
</h:form>
</body>
</html>
</f:view>
执行此代码后,我得到以下错误
java.io.NotSerializableException: javax.faces.component.html.HtmlForm
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
java.util.HashMap.writeObject(HashMap.java:1018)
sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362)
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170)
java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362)
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170)
java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362)
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170)
java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362)
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170)
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:293)
com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:167)
com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:123)
com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:155)
javax.faces.application.StateManagerWrapper.writeState(StateManagerWrapper.java:143)
org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:57)
com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:221)
com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:225)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
帮帮我。。
提前谢谢
事实并非如此。您有两种选择:
设置为瞬态
private transient HtmlForm initForm;
这样,在(反)序列化时将跳过该属性
设置为瞬态
private transient HtmlForm initForm;
这样,在(反)序列化时将跳过该属性
谢谢你的回复。我对所有托管bean类使用了“transient”类型。尽管我得到了相同的错误。要么代码没有重建,要么错误实际上不一样(例如,涉及不同的类)。谢谢你的回复。我对所有托管bean类使用了“transient”类型。尽管我得到了相同的错误。要么代码没有重建,要么错误实际上不一样(例如,涉及不同的类)。
private transient HtmlForm initForm;