我正在调试一个外国的JSF应用程序。
问题是,我提交了一个表单,但值没有被传递过去。
通过一个阶段监听器,我可以看到生命周期没有完全运行,也就是说跳过了第2-5个阶段:在还原视图阶段之后,直接调用了呈现响应阶段。我错过了应用值、验证、更新模型操作等步骤。
所以,这可能是鸡生蛋问题: 1. 负责的阶段没有被调用,因此新的表单输入无法被传递。 2. 系统没有识别任何新的输入,因此在恢复视图后直接呈现。
我检查了是否有responseComplete()或renderResponse()的调用。
我有些困惑。有没有想法来验证这两个假设中的一个?或者如何一般性地进行调试?有人遇到过类似的问题吗?
更新
我怀疑JSF不知道postback请求,并将其处理为初始视图。这解释了为什么我只通过了阶段1和6。
如何检查JSF是否将其识别为非faces请求? 如何检查当前facesContext中是否有适当的treeID?
通过一个阶段监听器,我可以看到生命周期没有完全运行,也就是说跳过了第2-5个阶段:在还原视图阶段之后,直接调用了呈现响应阶段。我错过了应用值、验证、更新模型操作等步骤。
所以,这可能是鸡生蛋问题: 1. 负责的阶段没有被调用,因此新的表单输入无法被传递。 2. 系统没有识别任何新的输入,因此在恢复视图后直接呈现。
我检查了是否有responseComplete()或renderResponse()的调用。
我有些困惑。有没有想法来验证这两个假设中的一个?或者如何一般性地进行调试?有人遇到过类似的问题吗?
更新
我怀疑JSF不知道postback请求,并将其处理为初始视图。这解释了为什么我只通过了阶段1和6。
如何检查JSF是否将其识别为非faces请求? 如何检查当前facesContext中是否有适当的treeID?
binding
属性吗?如果是这样,你是否确保它们各自指向自己的属性(因此不共享其他属性)? - BalusC@include
?最好使用<jsp:include>
。这可能也是问题的原因。下一步应该是检查生成的HTML输出是否正确,并在表单提交期间检查请求头/正文。 - BalusC