解析JSP中的消息代码?

时间:2015-12-10 19:09:26

标签: java spring jsp

我有一个奇怪的情况,我必须解码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并获取消息。任何人都可以帮助我使用语法,或者使用更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

事实证明,Spring已经想到了这一点。他们的标记库spring.tld有一个标记已经执行此操作。如果您熟悉spring-form.tld库,spring.tld库是一个方便的补充。文档在这里:Spring Framework Reference

我对于不知道这一点感到愚蠢,但有时你不会在需要之前学到一些东西。