嗨,我的jsf页面中有一个"fieldset"标签
现在我需要有条件地添加"禁用"属性
我有一个解决方案,但它非常难看:
<h:outputText escape="false" value="<fieldset disabled='disabled'>" rendered="#{surveysHandler.surveyRunning}" />
<h:outputText escape="false" value="</fieldset>" rendered="#{surveysHandler.surveyRunning}" />
Run Code Online (Sandbox Code Playgroud)
有一个很酷的jsf 2.2方法吗?
是的,有一个很酷的新 JSF 2.2 方法可以实现这一点!
您可以创建fieldset一个 JSF 2.2 passthrough 元素并向其传递一个属性映射,如下所示:
<fieldset jsf:id="fieldset">
<f:passThroughAttributes value="#{customerBean.params}"/>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
该前缀jsf适用于新的 JSF 2.2 名称空间http://xmlns.jcp.org/jsf。如果 HTML 标记在此名称空间中具有任何属性,JSF 会将其转换为组件树中真正的 JSF 组件。因此,可以f:passThroughAttributes在托管 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;
}
Run Code Online (Sandbox Code Playgroud)
有关直通属性和元素的更多信息,请参阅我的有关JSF 2.2 的 HTML5 友好标记的博文。
| 归档时间: |
|
| 查看次数: |
1077 次 |
| 最近记录: |