spring - reading values from XML and displaying them in JSP -
i have experience jsf want learn spring mvc now. wish display options user change language website displayed in. accomplish want define languages in xml , set them in bean, in jsp iterate on list show languages options user.
this xml looks like:
<bean id="languagessupportedbean" class="be.maxcorp.util.languagebean"> <property name="languagessupported"> <array> <value>en</value> <value>nl</value> </array> </property> </bean> this languagessupportedbean class:
@component public class languagebean { public string[] languagessupported; public string[] getlanguagessupported() { return languagessupported; } public void setlanguagessupported(string[] languagessupported) { this.languagessupported = languagessupported; } } in jsp i'd this:
<c:foreach items="${languagebean.languagessupported}" var="language"> ${language} </c:foreach> because spring mvc request-based , not component-based suppose approach won't work unless add languagebean attribute every model param in every controller method?
i'd appreciate tips on accomplishing this.
if you're using internalresourceviewresolver should able set property called exposecontextbeansasattributes expose beans attributes jsps can access directly:
<bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="exposecontextbeansasattributes" value="true"/> </bean> so if languagebean specified id="languagessupportedbean" in xml, can reference directly in jsp using id:
<c:foreach items="${languagessupportedbean.languagessupported}" var="language"> ${language} </c:foreach> so no controller or model modifications needed.
if declaring languagebean in xml, won't need annotate @component
alternatively, if you're not using internalresourceviewresolver inject languagebean controller , expose using method annotated @modelattribute:
@modelattribute("languagessupportedbean") public languagebean getlanguagebean() { return languagebean; } that accessible in jsp using name languagessupportedbean , alleviate need set bean on every model in every controller method.
Comments
Post a Comment