嗨,我的jsf页面中有一个“fieldset”标签
我有一个解决方案,但它非常难看:
<h:outputText escape="false" value="<fieldset disabled='disabled'>" rendered="#{surveysHandler.surveyRunning}" /> <h:outputText escape="false" value="</fieldset>" 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;
}
您可以将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; }