可以在JSP中使用${msg.getMessage('MSG_CODE')}
,如果你把消息分解成控制器中的Model(或ModelAndView)。
// In a controller class
...
@Autowired
private MessageResolver messageResolver;
...
@RequestMapping(value="/edit")
public ModelAndView getSomething(MyFormData formData,
ModelAndView mv) {
mv.setViewName("TARGET_VIEW");
// Do some controller things...
Map<String, Object> map = new HashMap<String, Object>();
map.put("msg", messageResolver);
mv.addAllObjects(map);
return mv;
}
而在JSP中,您可以使用${msg.getMessage('MESSAGE_CODE')}
。 这种方法的一大优点是,即使在Spring Form标签内部也可以使用Message。不能在Spring Form标签中使用<spring:message code="MESSAGE_CODE" />
。
<form:select path="domainObj1.property1" cssClass="form-control">
<form:option value="" label="--${msg.getMessage('L01006')}--" />
<form:options items="${selection.selectionList}" itemValue="code" itemLabel="codeVal"/>
</form:select>
它更好的是你实现自定义拦截器(具体而言,方法的postHandle)把messageResolver到ModelAndView的,而不是你写的所有控制器相同的代码。
这里是taglib参考:http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/spring.tld.html – 2011-02-01 15:53:08