如何解决在Spring 3.1中定义视图解析器
| 我正在基于3.1 M1创建一个新项目作为测试用例。我设置了web.xml,以将DispatcherServlet与org.springframework.web.context.support.Annotation ConfigWebApplicationContext的contextClass和domain.ApplicationConfiguration的contextConfigLocation一起使用。 但是,当我的一个@Controller注释类中的方法试图返回视图名称为\“ test \”的ModelAndView时,它将在同一控制器类中使用一个@RequestMapping为\“ test \”的方法查找方法。当我希望它在WebContent目录中查找名为\“ test.jsp \”的jsp时,似乎从未实例化任何viewresolver。我试过在ApplicationConfiguration类中声明一个视图解析器,但似乎被忽略了。 我总是收到类似以下内容的日志消息: 警告:在名称为'dispatcher \'的DispatcherServlet中找不到带有URI [/ test / foo / test]的HTTP请求的映射 如何在3.1中配置视图解析器? web.xml<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<web-app xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns=\"http://java.sun.com/xml/ns/javaee\"
xmlns:web=\"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\"
xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd\"
id=\"WebApp_ID\" version=\"3.0\">
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>domain.test.configuration.ApplicationConfiguration</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>domain.test</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<display-name>test</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
还有哪些其他配置有用?
解决方法
从文档中,定义JSP viewResolver的常用方法是:
<bean id=\"viewResolver\" class=\"org.springframework.web.servlet.view.UrlBasedViewResolver\">
<property name=\"viewClass\" value=\"org.springframework.web.servlet.view.JstlView\"/>
<property name=\"prefix\" value=\"/WEB-INF/jsp/\"/>
<property name=\"suffix\" value=\".jsp\"/>
</bean>
,当我从以下位置更改标签后,它开始工作:
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd \“
id = \“ WebApp_ID \”版本= \“ 3.0 \”>
至:
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd \“版本= \” 2.5 \“>
我知道对Servlet 3.0的支持应在里程碑2中实现,我只是没想到那种失败的模式会抢先声明它。我没有任何错误,它只是忽略了我所有的Controller映射。
,<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
请勿将网址格式设为/*
。提及网址格式为*.htm
。当然可以。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。