[英]Spring MVC. HTTP Status 404
I began to learn "Spring MVC" from this course: http://www.pluralsight.com/training/Courses/TableOfContents/springmvc-intro At step "Building->Run the Application" I'm stuck. 我从此课程开始学习“ Spring MVC”: http : //www.pluralsight.com/training/Courses/TableOfContents/springmvc-intro在“构建->运行应用程序”步骤中,我遇到了麻烦。
When I try to go to link http://localhost:8080/FitnessTracker/greeting.html
I get "HTTP Status 404" 当我尝试链接到
http://localhost:8080/FitnessTracker/greeting.html
我收到“ HTTP状态404”
HTTP Status 404 - /FitnessTracker/WEB-INF/jsp/Hello.jsp
type Status report
message /FitnessTracker/WEB-INF/jsp/Hello.jsp
description The requested resource is not available.
Apache Tomcat/7.0.50
web.xml web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>fitTrackerServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/servlet-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>fitTrackerServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<display-name>Archetype Created Web Application</display-name>
</web-app>
servlet-config.xml servlet-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<mvc:annotation-driven />
<context:component-scan base-package="com.pluralsight.controller"></context:component-scan>
<!--
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
</beans>
HelloController.java HelloController.java
package com.pluralsight.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping(value = "/greeting")
public String sayHello (Model model) {
model.addAttribute("greeting", "Hello WorldX");
return "Hello";
}
}
hello.jsp hello.jsp
<%@ page language="java" contentType="text/html; charset=US-ASCII"
pageEncoding="US-ASCII"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Insert title here</title>
</head>
<body>
<h1>${greeting}</h1>
</body>
</html>
http://localhost:8080/FitnessTracker/
- it's work (file: webapp/index.jsp) http://localhost:8080/FitnessTracker/
-工作正常(文件:webapp / index.jsp)
The error message says that it's looking for Hello.jsp
. 错误消息表明它正在寻找
Hello.jsp
。 And indeed, your controller returns the following view name: "Hello"
. 实际上,您的控制器返回了以下视图名称:
"Hello"
。 But your screenshot shows that your file is naled hello.jsp
. 但是您的屏幕快照显示,您的文件已设置为
hello.jsp
。 The case matters. 案件很重要。
Try returning the properly cased view name which matches the JSP hello.jsp
from the controller. 尝试从控制器返回与JSP
hello.jsp
匹配的hello.jsp
正确的视图名称。 Currently the controller returns Hello
while the JSP is named hello.jsp
, causing the 404. 当前,当JSP名为
hello.jsp
,控制器返回Hello
,导致404。
@Controller
public class HelloController {
@RequestMapping(value = "/greeting")
public String sayHello (Model model) {
model.addAttribute("greeting", "Hello WorldX");
//return "Hello";
return "hello";
}
}
Change in your web.xml the to 在您的web.xml中更改为
<servlet-mapping>
<servlet-name>fitTrackerServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.