Ta *_*Sas 15 java spring servlets spring-mvc
到目前为止,<mvc:annotation-driven />给我带来了很多麻烦,所以我想摆脱它.尽管spring框架文档清楚地说明它应该做什么,但实际上summar的标签列表<mvc:annotation-driven /> 却缺乏.
所以我坚持删除<mvc:annotation-driven />,现在得到错误
WARN osweb.servlet.PageNotFound - 在名为'workoutsensor'的DispatcherServlet中找不到具有URI [/ webapp/trainees]的HTTP请求的映射
对于所有应该由控制器类解决的Url(在这种情况下:) ./trainees.有什么建议,我可以阅读更多关于<mvc:annotation-driven />?我非常想知道究竟是什么标签代表<mvc:annotation-driven />.
Boz*_*zho 26
您可以使用BeanPostProcessor自定义每个定义的bean <mvc:annotation-driven />.javadoc现在详细说明了标签注册的所有bean.
如果你真的想摆脱它,你可以查看源代码 org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser
你可以看到它定义了哪些bean.我做过这个'练习'(不是针对所有人,而是针对我需要的人),所以这里是:
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="com.yourpackage.web.util.CommonWebBindingInitializer" />
</property>
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean class="org.springframework.http.converter.ResourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean class="org.springframework.http.converter.feed.AtomFeedHttpMessageConverter" />
<bean class="org.springframework.http.converter.feed.RssChannelHttpMessageConverter" />
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
<!-- bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" /-->
</list>
</property>
</bean>
<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
Run Code Online (Sandbox Code Playgroud)
现在,上面你看到了CommonWebBindingInitializer.您必须创建此类,才能使用转换和验证:
public class CommonWebBindingInitializer implements WebBindingInitializer {
@Autowired
private Validator validator;
@Autowired
private ConversionService conversionService;
@Override
public void initBinder(WebDataBinder binder, WebRequest request) {
binder.setValidator(validator);
binder.setConversionService(conversionService);
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这对我来说很好.随意报告任何问题.
如果你想避免mvc:annotation-driven标记,你可以自己简单地创建DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter编写bean,但听起来似乎最好用标记本身找到问题的根源.
你的问题有什么症状?您正在尝试使用Spring MVC应用程序做什么?
如果您想知道使用mvc:annotation-driven时幕后发生了什么,请参阅方法.AnnotationDrivenBeanDefinitionParser.parse()
| 归档时间: |
|
| 查看次数: |
20700 次 |
| 最近记录: |