当前位置: 首页 > 面试题库 >

如何在JSF中设置HtmlOutputTag的值?

袁阿苏
2023-03-14
问题内容

我想在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}" />

就是说,根据功能要求,确实可能存在更好,更清洁的方法来解决功能要求。如果需要,您可以对此进行详细说明,以便我们在必要时可以提出更好的方法。



 类似资料:
  • 问题内容: 情况:我有一个JavaServer Faces页面和一个会话范围的托管bean,它具有两个属性:一个用于保存可能值的列表,另一个用于保存所选值的列表。在JSF页面上,有一个绑定了这两个属性的组件。 问题:提交表单后,选定的值将转换为字符串(ArrayList类型的属性实际上包含几个字符串!);但是,当我使用转换器时,出现如下错误消息: 验证错误:值无效 问题:如何将属正确绑定到组件?

  • 我想替换Netbeans中的默认值${user}。帮助文件显示 要定义参数,请执行以下操作: > 在IDE的菜单栏中,选择“工具” 展开其他类别。双击属性。用户。属性文件将在编辑器中打开。 定义一个参数。例如,定义${user}参数,用于将您的姓名添加到您创建的模板中。语法为'user=LorumIpsum@mycompany.com'。展开代码模板时,该模板中出现的所有${user}都将替换为'

  • 问题内容: 我正在尝试使用JavaFX中的WebView入门,但是当尝试打开W​​ebView时,我收到以下所示的错误,我该如何解决此问题? 问题答案: 尝试运行WebView时遇到任何错误时,请确保您的VM选项包含模块javafx.web。 虚拟机选项: 在IntelliJ中,您可以通过转到IDE右上方的“编辑配置”按钮来访问VM选项。

  • 问题内容: 我已经使用数据库中的SQL数据库开发了一个窗口服务,该数据库中的记录已满,因此查询执行需要很多时间,而默认命令超时是30S,但我想将其增加到120S。 但是我的应用程序中有很多方法,因此我想从APP.config文件中进行设置,这样它将适用于应用程序级别,任何人都可以告诉我如何实现此目标 谢谢 问题答案: 实现此目的的最简单方法是在类似以下内容的地方添加新条目: 然后,创建一个将填充值

  • 问题内容: 我有一个模型: 如何编写基于类的视图,该视图创建新的模型实例并将外键设置为? 问题答案: 我通过覆盖方法解决了这个问题。下面是详细说明的样式: 但是我们可以简短地说(感谢dowjones123),在docs中提到了这种情况。

  • 问题内容: 我试着把这2行 在我的根.htaccess文件中,但这给我带来“内部服务器错误”消息… php5正在服务器上运行, 我无权访问php.ini,因此我认为htaccess是我唯一的机会。 你能告诉我哪里错了吗? 提前致谢 问题答案: 是正确的。 您将必须与您的托管服务商联系-有些不允许您更改php.ini中的值