我有一个奇怪的情况,我必须解码JSP页面内的Spring消息代码。通常,这将由Spring MVC BindingResult
代码处理,因为响应从控制器传递回JSP,但这不是正常情况。代码由一系列像这样的任意字符串组成,存储在Spring FieldError
object:
myform.myobject.someCode.mylist[1].someCode
myform.myobject.someCode.someCode
myform.myobject.someCode.something
myform.myobject.someCode
并且消息解析过程由Spring bean处理。我们使用的Message Source定义如下:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="messages,more_messages,even_more_messages,etcetera" />
</bean>
我已将bean包含在我的JSP中:
<jsp:useBean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" />
但我无法弄清楚如何从JSP内部调用messageSource.getMessage(error,locale)
。我试过这个:
${messageSource.getMessage(fieldError,null)}
但这似乎不起作用(同样,我收到有关非标准语法的警告。)这不是我以前必须做的事情 - 我不确定如何进入messageSource
bean并获取消息。任何人都可以帮助我使用语法,或者使用更好的解决方案吗?
答案 0 :(得分:0)
事实证明,Spring已经想到了这一点。他们的标记库spring.tld
有一个标记已经执行此操作。如果您熟悉spring-form.tld
库,spring.tld
库是一个方便的补充。文档在这里:Spring Framework Reference
我对于不知道这一点感到愚蠢,但有时你不会在需要之前学到一些东西。