html5标签上的JSF条件属性

前端之家收集整理的这篇文章主要介绍了html5标签上的JSF条件属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我的jsf页面中有一个“fieldset”标签

现在我需要有条件地添加“禁用”属性

我有一个解决方案,但它非常难看:

<h:outputText escape="false" value="&lt;fieldset disabled='disabled'&gt;" rendered="#{surveysHandler.surveyRunning}" />
<h:outputText escape="false" value="&lt;/fieldset&gt;" rendered="#{surveysHandler.surveyRunning}" />

有一个很酷的jsf 2.2方法吗?

解决方法@H_301_12@
是的,有一个很酷的新JSF 2.2方法来实现这一目标!

您可以将fieldset设置为JSF 2.2 passthrough元素,并将其传递给这样的属性映射:

<fieldset jsf:id="fieldset">
    <f:passThroughAttributes value="#{customerBean.params}"/>
</fieldset>

前缀jsf用于新的JSF 2.2命名空间http://xmlns.jcp.org/jsf.如果HTML标记在此命名空间中具有任何属性,则JSF会将其转换为组件树中的真实JSF组件.因此,可以使用f:passThroughAttributesto添加来自托管bean中的映射的属性.

params属性的getter看起来像这样(你可以根据bean中的任何条件添加属性):

public Map<String,String> getParams() {
    HashMap<String,String> params = new HashMap<String,String>();
    if (disabled) {
        params.put("disabled","disabled");
    }
    return params;
}

有关直通属性和元素的更多信息,请查看我的博文约@L_403_0@.

猜你在找的HTML5相关文章