Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JSF中设置HtmlOutTag的值?_Java_Jsf_Jsf 2 - Fatal编程技术网

Java 如何在JSF中设置HtmlOutTag的值?

Java 如何在JSF中设置HtmlOutTag的值?,java,jsf,jsf-2,Java,Jsf,Jsf 2,我想在bean中动态创建控件。我正在使用JSF2.0 HtmlOutputTag objHtmlOutputTag = new HtmlOutputTag(); 现在,我应该设置htmlouttag的哪个属性来设置htmlouttag的内容?作为,我的建议是不要动态添加/删除组件。用另一种方法解决您的问题: 切换组件的可见性 重新绑定属于组件的数据 动态添加/删除组件总是一个麻烦的来源,而且您可以用另一种更简单的方法来完成 outputText组件易于使用: <h:outputTex

我想在bean中动态创建控件。我正在使用JSF2.0

HtmlOutputTag objHtmlOutputTag = new HtmlOutputTag();
现在,我应该设置
htmlouttag
的哪个属性来设置
htmlouttag
的内容?

作为,我的建议是不要动态添加/删除组件。用另一种方法解决您的问题:

  • 切换组件的可见性
  • 重新绑定属于组件的数据
动态添加/删除组件总是一个麻烦的来源,而且您可以用另一种更简单的方法来完成

outputText
组件易于使用:

<h:outputText value="#{BackingBean.myProperty}"/>


然后在支持bean中为
myProperty
定义一个getter/setter。如果您真的想通过编程实现(除非您有强参数,否则我不鼓励这样做),下面是一个带有动态表的示例。

HtmlOutputTag表示一个标记,而不是一个组件。而是使用
htmlouttext
。然后,您只需设置
属性,就像您在JSF页面的真实组件中所做的那样。如果需要它是
值表达式
而不是原始
,则需要使用创建它。以下是一个启动示例:

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);
}

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

实际上,我是primefaces AccordionPanel。它不允许我直接绑定项目。所以我手动创建了“RSSFeeds”对象,并将其添加到accordion以在我的网页上显示新闻。我知道它很旧,但如果您需要它并且正在实现Omnifaces(感谢@BalusC提供该库),您可以使用Components类
<h:outputText value="#{bean.property}" />