|
Hi all, today I’ve wondered again about how to convert
property values of Beans to locale specific strings in the presentation layer. To
make it clear what I want to do, I will show you a small example (This code is
not compileable… It’s just for demonstration purpose): Consider a class MyBean: public class MyBean { public
String getCategoryId(); // Can get values ‘CatA’, ‘CatB’,
‘CatC’ } Now consider having JSF code like this: <h:panelGroup> <h:outputText
value=”#{myBean.categoryId}”/> </h:panelGroup> This would produce output like this on my webpage: ‘CatA’ or ‘CatB’
or ‘CatC’ The problem is that I don’t want to display
these raw values of the JavaBean, instead I want to display specific strings
stored somewhere in the presentation layer, for example in a message.properties
file, which I can use in the JSP file. But how to do that efficiently and what”s
the best practice for doing so? I frequently have this problem, not only with
String types, but also with Java 1.5 Enum types…. At the moment I am solving the problem the following
way: I am using a message.property file for JSF… which looks like the
following: Category_A=Category A Category_B=Category B Category_C=Category C Next I am rewriting the JavaBean class, so that it
look’s like the following: public class MyBean { public
String getCategoryId(); // Can get values ‘CatA’, ‘CatB’,
‘CatC’ public
boolean getIsCategoryA() { return
(this.getCategoryId().equals(“CatA”)); } … } Then I can change my JSF code to look like the
following: <h:panelGroup> <h:outputText
value=”#{Msg.Category_A}” rendered=”#{myBean.isCategoryA}”/> <h:outputText
value=”#{Msg.Category_B}” rendered=”#{myBean.isCategoryB}”/> <h:outputText
value=”#{Msg.Category_C}” rendered=”#{myBean.isCategoryC}”/> </h:panelGroup> I accepted this method at first, but as I’ve
already said, I’m having this problem very often and I don’t feel
comfortable about doing it that way.. that’s not really beautiful and get’s
really cumbersome if there are more than 3 different possibilities…. I know that there must be a mapping of the Java bean
values and the message.properties file, but I don’t think that it’s
a good idea to change the JavaBean class to reflect my need… For me the
bean is not part of the presentation layer any more…. I am looking forward to get some feedback and to hear
about how you are solving this problem. Thx in advance, Dominik |
- Best Practice - Converting raw property values of Beans Bieringer Dominik
- Re: Best Practice - Converting raw property values ... Gert Vanthienen
- AW: Best Practice - Converting raw property val... Bieringer Dominik
- Re: Best Practice - Converting raw property val... Torsten Krah
- Re: Best Practice - Converting raw property values ... Gilles Demarty
- Re: Best Practice - Converting raw property values ... Andrew Robinson
- AW: Best Practice - Converting raw property val... Bieringer Dominik
- Re: AW: Best Practice - Converting raw prop... Jonathan Harley
- AW: AW: Best Practice - Converting raw ... Bieringer Dominik
- Re: AW: AW: Best Practice - Conver... Jonathan Harley
- Re: AW: Best Practice - Converting raw ... Andrew Robinson

