gpt4 book ai didi

java - 如何在 JSF 中设置 HtmlOutputTag 的值?

转载 作者:行者123 更新时间:2023-11-30 05:59:47 24 4
gpt4 key购买 nike

我想在我的 bean 中动态创建控件。我正在使用 JSF 2.0

HtmlOutputTag objHtmlOutputTag = new HtmlOutputTag();

现在我应该设置HtmlOutputTag的哪个属性来设置HtmlOutputTag的内容?

最佳答案

HtmlOutputTag 代表一个标签,而不是一个组件。而是使用 HtmlOutputText。然后,您只需设置 value 属性,就像您在 JSF 页面的真实组件中所做的那样。如果您需要它是一个 ValueExpression 而不是原始 value,那么您需要使用 ExpressionFactory#createValueExpression() 创建它.这是一个启动示例:

HtmlOutputText text = new HtmlOutputText();
text.setValueExpression("value", createValueExpression("#{bean.property}", String.class));

此处的便捷方法 createValueExpression() 如下所示:

private static ValueExpression createValueExpression(String valueExpression, Class<?> valueType) {
FacesContext context = FacesContext.getCurrentInstance();
return context.getApplication().getExpressionFactory()
.createValueExpression(context.getELContext(), valueExpression, valueType);
}

将它隐藏在一些实用程序类中,这样您就不需要一次又一次地重复所有代码;)valueType 参数显然应该表示属性的实际类型。

JSF 页面中的最终结果应如下所示:

<h:outputText value="#{bean.property}" />

也就是说,根据功能需求,可能确实有更好、更简洁的方法来解决功能需求。如果需要,您可以详细说明一下,以便我们在必要时提出更好的方法。

关于java - 如何在 JSF 中设置 HtmlOutputTag 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com