【问题标题】:Setting the value of a label in Primefaces在 Primefaces 中设置标签的值
【发布时间】:2012-10-15 02:22:35
【问题描述】:

我的网络应用程序中有以下标签

<h:outputLabel id="yearLabel" value="?" style="font-weight:bold"/>

在该页面的控制器中,我想将此标签的文本设置为某个值(在 Java 中)。

我该怎么做?

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    只需按照通常的方式将其绑定到 bean 属性即可。

    @ManagedBean
    @RequestScoped
    public class Bean {
    
        private String label;
    
        @PostConstruct
        public void init() {
            label = "Year"; 
        }
    
        // ...
    }
    

    <h:outputLabel ... value="#{bean.label}" />
    

    与具体问题无关,我不确定这一切的功能要求是什么,所以我无法判断您是否朝着正确的方向前进要求,但您是否考虑过使用资源包?

    【讨论】:

    • 感谢您的建议。 Web 应用程序是一个模拟。标签表示当前年份。用户按下按钮,执行一年的模拟,然后将标签设置为下一年。 IE。一开始,标签显示2012,按下按钮后-2013,下一次按下后-2014
    • 我按照你说的修改了代码,但不幸的是它不起作用。我想我需要通知“视图层”属性的值发生了变化,需要重新绘制标签。有可能吗?
    • 嗯,好的。好吧,正如您所注意到的,它与在其他 JSF 组件(如 h:outputTexth:inputText 等)中显示 bean 属性没有什么不同。我只是想知道它是否真的是 &lt;label&gt; 的有效用法。我在任何地方都看不到 for 属性。编辑:至于它不起作用的问题,也许您触发了 ajax 请求并忘记重新渲染组件?您必须在“不起作用”中更加具体。从开发人员的角度阐述问题,而不是从最终用户的角度。
    • 在这种情况下,您需要为您的标签提供id。执行某些操作(由(命令)按钮触发)后,您需要对 outputLabel 的 id 进行更新,以便从 bean 重新获取新年。
    • @BalusC 如何使用已知的id 重新渲染组件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多