java - 两种不同的 View 取决于使用 Spring MVC 3 的 URL 文件扩展名

标签 java spring spring-mvc

我希望拥有相同的请求映射,但根据文件扩展名解析为不同的 View 。我有两个 JSP,一个呈现 HTML,另一个呈现 XML。根据文件扩展名,我应该解析为相应的 jsp。

这是我的 Controller :

@Controller
public class FileManagementController {

    @RequestMapping(value="/filemanagements", method=RequestMethod.GET)
    public ModelAndView list() {
        //if file extension .xml return  /filemanagement/listXml
        //if no file extension present return /filemanagement/list
    }

}

我的 WebApp 有以下 y 根目录:

/jsp/filemanagement/list.jsp

<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>

..

/jsp/filemanagement/listXml.jsp

<?xml version="1.0" encoding="UTF-8"?>
<%@page contentType="text/xml" pageEncoding="UTF-8"%>

....

这就是我在 servletContext.xml 中配置 ViewResolver 的方式:

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
</bean>

最佳答案

看看 ContentNegotiatingViewResolver。来自javadoc :

This view resolver uses the requested media type to select a suitable View for a request.

If the requested path has a file extension and if the setFavorPathExtension(boolean) property is true, the mediaTypes property is inspected for a matching media type.

还有一个section of the ref manual覆盖这个解析器。

关于java - 两种不同的 View 取决于使用 Spring MVC 3 的 URL 文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551200/

相关文章:

java - 使用 iText 外部 CSS 将 HTML 转换为 PDF

java - 如何将 Java OutputStream 与 OutputStreamWriter 混合使用?

java - JPA 删除失败(违反完整性约束 : foreign key no action) - data model too convoluted?

java - 如何在 Spring MVC Web 应用程序中更新 session 属性

java - 创建 bean sessionFactory 时出现不兼容的类更改错误

java - 在 Java 中,如果在操作中使用 Double.NaN 会发生什么情况?

Java 内存 : jstat vs Runtime. getRuntime().freeMemory();

java - Spring MVC Controller 未应用

java - Spring 中使用 HibernateTemplate 的 ModelMapper 的奇怪行为

java - spring jdbc集成测试