2012-08-04 46 views
0
我目前使用這樣的事情在複合組件來創建一個EL引用的資源

如何創建EL引用指向一個資源在JSF

<composite:implementation> 

    <ui:param name="resourceName" value="images:#{cc.resourceName}" /> 

    <h:commandButton id="button" image="#{resource[resourceName]}" /> 

</composite:implementation> 

正如你所看到的,ui:param指組件類中名爲getResourceName()的方法。此方法確定要加載哪個資源。

我想有一個解決方案,整個ui:param事情是不必要的,是這樣的:

<composite:implementation> 

    <h:commandButton id="button" image="#{cc.resource}" /> 

</composite:implementation> 

目前,我甚至不知道這是可能的。

任何想法?

THX, DS

回答

0

如果你不希望使用JSF提供的資源API那麼你可以通過上下文相對URL的形象,

例如:

如果這是你的自定義組件:

<util:mbt actionMethod="#{bean.show}" resourceName="#{bean.img}" /> 

將其更改爲:

<util:mbt actionMethod="#{bean.show}" resource="#{bean.img}" /> 

其中bean.getImg()將這樣的組件時返回一個字符串"/resources/images/test.jpg"

可替代地,使用資源API:

<ui:param name="resourceName" value="images:#{bean.img}" /> 
<util:mbt actionMethod="#{bean.show}" resource="#{resource[resourceName]}" /> 

,並使用它是這樣的:

<composite:implementation> 

    ..... 

    <h:commandButton id="button" action="#{cc.attrs.actionMethod}" image="#{cc.attrs.resource}" /> 

    ..... 
</composite:implementation> 

這個問題依然存在於我的腦海裏。 「但爲什麼?」

相關問題