You can use ${msg.getMessage('MSG_CODE')} in the JSP if you inject a message recognizer in Model (or ModelAndView) into the controller.
// 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; }
And in JSP you can use ${msg.getMessage('MESSAGE_CODE')} . The big advantage of this approach is that you can use Message even inside Spring form tags. <spring:message code="MESSAGE_CODE" /> cannot be used inside Spring form tags.
<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>
Even better, you implement a custom Interceptor (specifically the postHandle method) to put a MessageResolver in a ModelAndView, rather than writing the same code in all controllers.
source share