java - 更改托管 bean 的呈现属性

标签 java jsf-2 managed-bean

我正在尝试使用 JSF,场景如下:

我有一个 session 范围的托管 bean

@ManagedBean(name = "rand")
@SessionScoped

我声明了以下内容(除其他外):

private UIOutput uiOutput;(plus getter and setter)

在我的 Facelets 页面中,我有

<h:outputLabel for="userGuess"  binding="#{rand.uiOutput}" 
value="#{rand.listSize}" rendered="false"/>

页面上有一个按钮,以及按钮的操作方法以及我拥有的其他内容

this.uiOutput.setRendered(true);

但是似乎不起作用,元素不会被渲染。

如果按渲染方式启动它并更改属性(将其设置为 true 或 false),则它可以工作。 我怀疑这与以下事实有关:未呈现的元素未绑定(bind)到我的托管 bean 中的 uiOutput 对象。在这种情况下我怎样才能让它工作?

最佳答案

我改变了一件事,现在它正在工作,我改变了按下按钮时运行的方法的返回类型,它返回一个字符串值,导航到同一页面,它现在返回 null 而 JSF 不返回生成一个新 View ,而不是渲染相同的 View ,并且一切正常。

我想,因为每次都会渲染一个新 View ,所以我设置渲染值 true 或 false 并不重要,因为每次在新 View 上将组件设置为 render="false"时。

关于java - 更改托管 bean 的呈现属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14233260/

相关文章:

java - 在 JSF 中,如何使用 ELResolver 获取托管 bean 的属性

jsf - @ManagedProperty 未注入(inject)

java - Spring MVC : X-Content-Type-Options problems, JavaScript 未加载

java - 将现有的 jni 库(已编译 ".so")添加到另一个 android studio 项目

java - 如何在 JSF2 中使用参数重定向?

jsf - Primefaces 文件 uploader 不调用处理程序方法

java - JSF 和 ManagedBean : NullPointerException

java - 在gradle中添加依赖项后无法导入javax.servlet

Java等待/通知-不唤醒线程

java - EL表达式解析整型为long