java.io.NotSerializableException: org.omnifaces.taghandler.Validator
java.io.NotSerializableException: org.omnifaces.taghandler.Validator
我正在尝试在以下代码行中使用 Omnifaces 的验证器:
<p:inputText
value="#{createEventBean.newGuest.name}">
<o:validator validatorId="javax.faces.Required"
message="Numbers only" />
</p:inputText>
但我收到以下错误:
DefaultFacele E Exiting serializeView - Could not serialize state: org.omnifaces.taghandler.Validator
java.io.NotSerializableException: org.omnifaces.taghandler.Validator
我在这里找到了对这个问题最接近的 SO 讨论:java.io.NotSerializableException - org.omnifaces.taghandler.Converter 但是我使用 Websphere 8.0.0.9 的 MyFaces 2.0.3 实现和 PrimeFaces 5.1,这可能是同一个错误吗?
这行代码没有任何问题:
<p:inputText id="phone" styleClass="mask-num"
value="#{adminBean.user.mobilePhone}">
<o:validator validatorId="javax.faces.RegularExpression"
pattern="[0-9-]*" message="Numbers only" />
</p:inputText>
是我用错了还是有解决办法?
谢谢。
这是 MyFaces 中的错误。我无法确定哪个 MyFaces 版本包含此修复程序,但我可以断定此构造至少在 MyFaces 2.1.12 中运行良好。然而,在 WebSphere 中升级 MyFaces 可能不是一项微不足道的任务(技术上和官僚主义)。
最好的办法是告诉 MyFaces 不要在会话中序列化整个视图状态,而是将其保存在内存中并保存一个引用(就像默认情况下的 Mojarra 那样)。您可以通过 web.xml
中的以下上下文参数执行此操作:
<context-param>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>false</param-value>
</context-param>
另请参阅:
- java.io.NotSerializableException: org.omnifaces.taghandler.Converter
我正在尝试在以下代码行中使用 Omnifaces 的验证器:
<p:inputText
value="#{createEventBean.newGuest.name}">
<o:validator validatorId="javax.faces.Required"
message="Numbers only" />
</p:inputText>
但我收到以下错误:
DefaultFacele E Exiting serializeView - Could not serialize state: org.omnifaces.taghandler.Validator
java.io.NotSerializableException: org.omnifaces.taghandler.Validator
我在这里找到了对这个问题最接近的 SO 讨论:java.io.NotSerializableException - org.omnifaces.taghandler.Converter 但是我使用 Websphere 8.0.0.9 的 MyFaces 2.0.3 实现和 PrimeFaces 5.1,这可能是同一个错误吗? 这行代码没有任何问题:
<p:inputText id="phone" styleClass="mask-num"
value="#{adminBean.user.mobilePhone}">
<o:validator validatorId="javax.faces.RegularExpression"
pattern="[0-9-]*" message="Numbers only" />
</p:inputText>
是我用错了还是有解决办法? 谢谢。
这是 MyFaces 中的错误。我无法确定哪个 MyFaces 版本包含此修复程序,但我可以断定此构造至少在 MyFaces 2.1.12 中运行良好。然而,在 WebSphere 中升级 MyFaces 可能不是一项微不足道的任务(技术上和官僚主义)。
最好的办法是告诉 MyFaces 不要在会话中序列化整个视图状态,而是将其保存在内存中并保存一个引用(就像默认情况下的 Mojarra 那样)。您可以通过 web.xml
中的以下上下文参数执行此操作:
<context-param>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>false</param-value>
</context-param>
另请参阅:
- java.io.NotSerializableException: org.omnifaces.taghandler.Converter