Jsf Mojara到MyFaces:EL表达式上的NPE
长话短说,我正在一个应用程序上进行迁移到MyFaces的实验,当时我注意到单个页面的ViewState大小超过18MB。我怀疑这是因为我在这个页面上有超过10个表单,这是必要的,因为页面上有超过10个ajaxified PrimeFaces对话框,Ajax对话框需要它们自己的内部表单。看起来ViewState随着每个表单呈指数增长。我了解到MyFaces在ViewState方面的效率要高得多,因此我尝试将我的应用程序原型化以分析结果 我注意到Mojarra从未出现过一个问题的特定用例:Jsf Mojara到MyFaces:EL表达式上的NPE,jsf,myfaces,mojarra,Jsf,Myfaces,Mojarra,长话短说,我正在一个应用程序上进行迁移到MyFaces的实验,当时我注意到单个页面的ViewState大小超过18MB。我怀疑这是因为我在这个页面上有超过10个表单,这是必要的,因为页面上有超过10个ajaxified PrimeFaces对话框,Ajax对话框需要它们自己的内部表单。看起来ViewState随着每个表单呈指数增长。我了解到MyFaces在ViewState方面的效率要高得多,因此我尝试将我的应用程序原型化以分析结果 我注意到Mojarra从未出现过一个问题的特定用例: 我有一
- 我有一个PrimeFaces数据表
- 单击行上的编辑按钮
- 选定的行将更新为模型
- 我呈现编辑对话框的表单以显示所选行的托管bean值
- 编辑按钮
属性执行显示对话框的脚本oncomplete
- 用户提交表单的普通LOB数据输入表单
- 保存到数据库
- Ajax使用该记录的新值呈现数据表
<h:form>
<p:dataTable var="bla" selection="#{managedBean.selectedValue}" ...>
<p:column header="Options">
<p:commandButton ajax="true" value="Edit" process="@this" update=":editDialogForm"
oncomplete="editDialogWidget.show()" />
</p:column>
...
</p:dataTable>
</h:form>
....
<p:dialog widgetVar="editDialogWidget" header="Edit stuff" ...>
<h:form id="editDialogForm">
<h:inputText value="#{managedBean.selectedValue.someHibernateProperty}" />
...
</h:form>
</p:dialog>
...
....
...
您可以清楚地看到这将导致NPE,但我想知道是否有一个上下文参数可以在MyFaces中使用,以便它在EL表达式方面的行为类似于Mojarra?如果不是,那么这是Mojarra的一个bug,它本不应该出现在任何地方吗?你能进行堆栈后跟踪吗?@partlov在
中使用process=“@this”
会导致NPE,因为你没有向服务器发送任何要处理的内容,但在你的生活中似乎很有趣context@LuiggiMendoza我想知道为什么Mojarra没有抛出这个异常?我在JSF1.2上开发时遇到过这种情况,我想类似这种情况的NPE被吞并了,JSP页面就是不起作用。