我在JSF中有一个模板,这个模板有一个按钮,对于每个使用这个模板的页面,它的动作必须不同。 我想知道是否有任何办法只设置该行动的一部分。 例如 在模板中,我在按钮上有以下属性:
disabled = "#{managedBeanTemplate.EditMode}"
但是,对于将使用此模板的每个页面,它应该仅替换它表示managedBeanTemplate的部分,因此:
disabled = "#{managedBeanProduct.EditMode}"
disabled = "#{managedBeanSales.EditMode}"
有没有办法做到这一点?
我知道有替换部分xhtml的ui:param,但我无法使用以下内容嵌套在模板中:
disabled = "#{#{managedBeanName}.EditMode}"
在模板中,然后
<ui:param name="managedBeanName" value="managedBeanProduct"/>
在使用模板的页面中。
答案 0 :(得分:0)
我在这里找到答案: facelets: passing bean name with ui:param to action attribute 我可以在模板中做这样的事情:
disabled = "#{managedBeanName['EditMode']}"
然后,我可以通过ui:param
简单地设置“managedBeanName”答案 1 :(得分:0)
使用带参数的方法会更好。通过让模板构造对服务器端的后向引用,您将创建一个不应该的维护位置。用一个方法替换引用,该方法抽象出组件是否被禁用/渲染/等等的逻辑。
最终用户体验不应该关心&#34;为什么&#34;,只是它是否必须以某种方式呈现组件。