我正在调试外国JSF申请。问题是,我提交表格,但值并未延续。

有了我可以看到的相位侦听器,生命周期并不能完全通过,因此可以说它跳过了第2 -5阶段:在还原视图阶段之后,渲染响应阶段被直接调用。我错过了应用值,验证,更新模型操作等。

因此,这可能是一个鸡和蛋的问题:1。不调用负责任的阶段,因此新表格输入无法延续。 2.系统无法识别任何新输入,因此在还原视图后直接渲染。

我检查了没有响应的呼叫()oder rendersponse()。

我以某种方式卡住了。验证两个假设之一的想法吗?还是一般如何调试?有人有类似的问题吗?


更新

我怀疑,JSF不知道 回发请求 并像一个 初始视图. 。这可以解释,我只通过了第1阶段和6阶段。

我该如何检查,如果JSF将其识别为 非脸部重新要求?
如果有适当的情况,我该如何检查 TreeId 在电流中 facesContext.

有帮助吗?

解决方案 2

找到了解决方案!很抱歉,我猜这是非常具体的:JSF的自定义stateManager与JSF 1.2无法使用。这导致了这个奇怪的错误。固定了StateManager,一切正常。那是痛苦的,花了很多时间:-(

还是要谢谢你的帮助 :-)

其他提示

我从我发布的答案中引用 :

每当一个 UICommand 组件无法调用相关的操作,请验证以下内容:

  1. UICommand 必须将组件放置在一个 UIForm 组件(例如 h:form).
  2. 你不能 UIForm 彼此之间的组件(请注意包含文件!)。
  3. 不应发生验证/转换错误(使用 h:messages 让他们全部)。
  4. 如果 UICommand 组件放置在一个 UIData 组件,确保完全相同 DataModel (背后的对象 UIData' value 保留属性)。
  5. rendereddisabled 组件和所有父组件的属性不应评估 false 在应用请求值阶段。
  6. 确保不 PhaseListener 或任何 EventListener 在请求响应链中,链条改变了JSF生命周期,以跳过Invoke动作阶段。
  7. 确保不 Filter 或者 Servlet 在同一请求中,响应链阻止了请求 FacesServlet 不知何故。

由于在您的特殊情况下,第2-5阶段被跳过,您确定(?) FacesContext#renderResponse() 没有被调用,可以从列表中刮擦3、6和7的原因。根据您如何调试JSF阶段的方式,可能也可能会刮擦4和5的原因。调查其他原因。我在原因2上的美分2检查您是否看不到 <form><form></form></form> 在生成的HTML源中,并在JSF源中回溯。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top