2009-05-10 26 views
1

對於uni任務,我正在做一個JSF webapp來玩撲克。玩家手中的牌通過圖像顯示。將卡套/等級映射到關聯圖像的URL的「最乾淨」方式是什麼?應該在JSF中處理生成圖像URL的位置?

我目前正在傾向於使用任何Card#toString返回的內容,或者在後臺bean中處理該內容,只是模型或控制器似乎都不是處理此問題的「正確」位置。

(這個問題是有些主觀,但話又說回來,這樣是每一個設計的問題。我在尋找,我錯過了,而不是討論一些顯而易見的解決方案。)

+1

爲什麼你不使用靜態圖像? s2.jpg(黑桃2),ca(俱樂部的王牌)等... – 2009-05-10 16:20:06

+0

實際圖像資源的名稱是靜態的。這只是模型如何強制轉換爲String和視圖之間的依賴關係。 – millimoose 2009-05-10 19:50:38

回答

1

如果您對集生產網址在後臺bean,你可以使用一個EL function做翻譯:

<h:graphicImage value="#{fnlib:getImageUrlFor(myBean.cardInstance)}" /> 

這樣一來,你的支持bean可以直接返回卡類實例(我相信這是一個枚舉)和函數映射它到一個圖片網址。您可以在this answer中找到如何實現該功能的示例。你可能需要看FacesContext.getCurrentInstance().getExternalContext()如果你想建立一個無論你的JSP相對於圖像的哪個目錄(我不記得什麼規則h:graphicImage使用我的頭頂部)將是有效的URL。

+0

不是特別反對它,它只是當我的大腦在看到支撐豆時一直在思考「控制器」,而這看起來更像是一個視圖問題。 EL功能看起來像是一個足夠好的地方。 – millimoose 2009-05-10 20:08:24