我正在调试一个外部JSF应用程序。 问题是,我提交了一份表格,但这些价值没有结转。
使用阶段监听器,我可以看到,生命周期没有完全运行,所以说它跳过阶段2 -5:在恢复视图阶段之后,直接调用渲染响应阶段。我想念应用值,验证,更新模型操作等等。
所以,这可能是一个鸡蛋问题: 1.未调用负责阶段,因此无法继承新表单输入。 2.系统无法识别任何新输入,因此在恢复视图后直接渲染。
我检查了没有响应完成()或者调用renderResponse()。
我被某种方式卡住了。有任何想法验证两个假设之一吗?或者如何调试一般?有没有人有类似的问题?
我怀疑,JSF不知道回发请求并像初始视图那样处理它。这可以解释,我只通过了第1阶段和第1阶段。 6。
如果JSF将此识别为非面孔请求,我该如何检查?
如果当前facesContext
中有适当的 treeID ,我该如何检查。
答案 0 :(得分:6)
我引用了我发布的答案before:
每当
UICommand
组件时 无法调用相关的操作, 验证以下内容:
UICommand
组件必须放在UIForm
组件中 (例如h:form
)。- 您不能嵌套多个
UIForm
组件 (注意包含文件!)。- 不应发生验证/转换错误(使用
h:messages
让他们全部完成。)- 如果
UICommand
组件放在UIData
组件内, 确保完全相同DataModel
(背后的对象)UIData
的{{1}}属性)是 保留。- 组件的
value
和rendered
属性以及所有属性 父组件不应该 在申请期间评估为disabled
请求值阶段。- 确保中没有
false
或任何PhaseListener
请求 - 响应链已经改变了 JSF生命周期跳过调用 行动阶段。- 请确保同一请求 - 响应中没有
醇>EventListener
或Filter
连锁已经阻止了这个要求 不知怎的Servlet
。
由于在您的特定情况下,已跳过阶段2-5并且您确定(?)未调用FacesServlet
,因此可能会从列表中划分原因3,6和7 。原因4和5也可能被划伤,具体取决于您调试JSF阶段的方式。调查其他原因。我的原因2.检查您是否在生成的HTML源代码中看不到FacesContext#renderResponse()
并在JSF源代码中回溯它。
答案 1 :(得分:0)
找到解决方案! 我很抱歉,但我认为这是非常具体的应用程序:JSF的自定义StateManager不适用于JSF 1.2。这引起了这个奇怪的错误。 修好了StateManager,一切正常。这很痛苦并花费了很多时间: - (
感谢您的帮助: - )