【问题标题】:ModelAndView returns source code with "text/plain" typeModelAndView 返回“text/plain”类型的源代码
【发布时间】:2015-01-03 10:57:32
【问题描述】:

我的来源

@RequestMapping(value = "/", method=RequestMethod.GET)
public ModelAndView mainPage() {

    ModelAndView model = new ModelAndView("uploadPage");
    model.addObject("msg", "hello world");

    return model;
}

我的 web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/mvc/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file></welcome-file>
    </welcome-file-list>
</web-app>

但是当执行“mainPage 方法”时,jsp 页面看起来像“text/plain”类型的源代码,而不是通常页面...

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%@ page isELIgnored="false" %>
<title>Hello Spring MVC</title>
</head>
<body>
    <h2>
        <c:out value="${msg}" />
    </h2>
</body>
</html>

帮助

【问题讨论】:

  • 但据我所知contentType="text/html!我看不到"text/plain"
  • 我更新了帖子,添加了截图
  • 能否提供web.xml?
  • 我提供了 web.xml

标签: java jsp spring-mvc


【解决方案1】:

好的,我想我明白了。改变

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

到这个

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

哪个适合你。感谢this answer

【讨论】:

    【解决方案2】:

    您的页面似乎是作为纯资源文件从服务器返回的。这意味着根本没有调用 Spring,并且您的文件可能缺少 .jsp 扩展名。 首先检查您的 web.xml 以查看 DispatcherServlet 是否正确映射以获取您的 URL。如果不确定,请输入

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    

    其次,检查你的 bean 配置是否有正确的 viewResolver bean。

    【讨论】:

      猜你喜欢
      • 2012-06-02
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 2016-01-23
      • 2020-09-30
      • 1970-01-01
      相关资源
      最近更新 更多