java - 在 Spring 3.1 中定义 View 解析器

标签 java spring spring-mvc

我正在创建一个基于 3.1 M1 的新项目作为测试用例。我将我的 web.xml 设置为将 DispatcherServlet 与 org.springframework.web.context.support.Annotation ConfigWebApplicationContext 的 contextClass 和 domain.ApplicationConfiguration 的 contextConfigLocation 一起使用。

但是,当我的一个 @Controller 注释类中的一个方法试图返回一个 View 名称为“test”的 ModelAndView 时,我会在同一个 Controller 类中寻找一个 @RequestMapping 为“test”的方法我希望它在 WebContent 目录中查找名为“test.jsp”的 jsp,看起来没有 viewresolver 从未实例化过。我曾尝试在 ApplicationConfiguration 类中声明一个 View 解析器,但它似乎被忽略了。 我总是收到类似这样的日志消息: 警告:在名称为“dispatcher”的 DispatcherServlet 中找不到带有 URI [/test/foo/test] 的 HTTP 请求的映射

如何在 3.1 中配置 View 解析器?

网络.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>

还有哪些其他有用的配置?

最佳答案

来自documentation ,定义 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>

关于java - 在 Spring 3.1 中定义 View 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6077356/

相关文章:

java - 将 ArrayList 写入文件时出现异常

java - SWT 在运行耗时的 UI 任务时显示进度条

java - 在 Spring 代码库配置中处理属性文件的正确方法

java - 类型参数 'S' 的推断类型 'S' 不在其范围内;应该扩展 'ua.com.store.entity.Country

java - EnableWebMvc 注解含义

java - 如何通过 Spring Security 和 MarkLogic 的 Java 客户端 API 对用户进行身份验证?

java - Spring MVC 将值列表从 JSP 页面传递到 Controller

java - 在 REST 服务中调用 SOAP 服务

java - 创建 servlet 时出现非 java 源文件夹错误

java - 使用 XML 配置和注释初始化 java beans 类时出现空指针异常