1

我在 JSF 页面中有以下行:

<h:commandLink action="#{myBean.test}" value="Wizard Step"></h:commandLink>

我希望在加载页面时,与 myBean 对应的 Bean 将被实例化(并且我将能够在 eclipse 调试器中看到这一点)。

JSF 的其余部分工作正常,但是这个 bean 没有解析(没有任何错误)。

如何从 el 无法解析 bean 中获取错误?

4

1 回答 1

1

如果有 EL 错误,你肯定会得到javax.elpackage的异常:

在您的情况下,托管 bean 不是根据初始请求构建的。这只能意味着在视图的其他地方没有引用托管 bean。EL inaction属性仅在提交表单时进行评估。所以只有在调用动作时才会构造bean。作为测试,只需将#{myBean}其放在视图中的某个位置。您会看到它是根据初始请求构建的。

真正的问题是根本没有调用命令按钮操作,因此根本不评估其操作属性中的 EL。该问题无法在 EL 端进行调试或确定。没有调用按钮操作有很多可能的原因。你可以在这里找到它们:commandButton/commandLink/ajax action/listener method not invoked 或 input value not updated。初学者中最常见的原因是按钮位于重复组件内,例如<h:dataTable>其值未正确保存并在表单提交请求期间返回完全不同的值,或者该组件或其组件之一具有rendered不正确的属性保留并默认为false.

于 2012-01-14T13:53:26.650 回答