对于单一任务,我正在做一个JSF webapp来玩扑克。玩家手中的牌由图像显示。将卡片套装/等级映射到相关图像的URL的“最干净”方法是什么?
我目前倾向于使用任何Card#toString返回,或者在支持bean中处理它,只是模型或控制器似乎都不是处理它的“正确”的地方。
(这个问题有点主观,但话题又一次,每个设计问题都是如此。我正在寻找一些我错过的明显解决方案而不是讨论。)
答案 0 :(得分:1)
如果您反对在辅助bean中生成URL,则可以使用EL function进行翻译:
<h:graphicImage value="#{fnlib:getImageUrlFor(myBean.cardInstance)}" />
这样,你的支持bean可以直接返回卡类实例(我认为它是 enum ),该函数会将它映射到图像URL。您可以在this answer中找到如何实现该功能的示例。您可能需要查看FacesContext.getCurrentInstance().getExternalContext(),如果您想构建一个有效的URL,无论您的JSP相对于图像在哪个目录中(我都记不清哪些规则{{3}使用了我的头顶。)