我已在我的项目上启用 mvc注释驱动,添加到 spring servlet xml 以下配置:
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="com.test.WebArgumentResolver"/>
</mvc:argument-resolvers>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
在此更改后,下面的jsp页面停止工作:
<spring:bind path="list">
<form:select path="maxFrequency">
<form:options items="${status.value}"/>
</form:select>
</spring:bind>
<spring:message code="test.property" />
结果我有:
Caused by: javax.servlet.jsp.JspException: Type [java.lang.String] is not valid for option items
我的控制器和表格:
@RequestMapping(method = RequestMethod.GET)
public String show(@ModelAttribute("form") AccessForm form, Map<String, Object> model) throws IOException {
AccessSettings settings = getAccessSettings();
form.setAlertSettings(settings.getAlertSettings());
form.setMaxFrequency(settings.getMaxFrequency());
return "page";
}
public class AccessForm{
public List<Long> getList() {
// some custom logic that generate long items
}
}
我尝试对此进行调试,发现注释驱动已启用 ConversionService ,尝试使用上面的类格式化程序转换bean属性。
有人可以通过哪种方式解释我可以禁用默认格式化程序,还是可以建议一些解决方法来在jsp页面上实现相同的目标。