我有以下问题:我们使用 JSF 开发了一个 Web 项目。在许多 facelets 中,action 类的 init()-Method 用数据填充 backing bean,通过以下方式调用
<f:metadata>
<f:event listener="#{theActionClass.init}" type="preRenderView" />
</f:metadata>
只要您使用普通的浏览器,如 firefox、chrome 甚至 eclipse 浏览器,它就可以正常工作。但是当使用像 lynx 这样的基于文本的浏览器(或使用 htmlUnit 或 wget)时,似乎不再调用 init() 方法。init() 填充到支持 bean 中的数据不存在,也没有显示在基于文本的浏览器中(但在 firefox 中单击会显示数据)。
例如:
<div class="layout1">#{text['somethingFromPropertyFile']}
</div>
<div class="layout2">
<h:outputText value="#{backingBean.someStringValue}" />
</div>
使用 firefox 显示属性文件中的文本以及支持 bean 中 someStringValue 的内容。使用基于文本的浏览器仅显示第一个 div 框的内容。有谁知道这里出了什么问题,或者我如何解决这个问题,以便它也适用于基于文本的浏览器?非常感谢!