0

当我使用 url 时http://localhost:8080/springdemo/hello..它显示 404 not found 错误..我已经像往常一样在 Maven 项目中将我的 java 文件放在 src/main/java 中。我的控制器代码如下:-

package org.abhishek;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import java.lang.System;

@Controller
public class HelloWorldController {
    @RequestMapping(value="/hello", method = RequestMethod.GET)
    public ModelAndView helloWorld() {
        System.out.println("hello**");
        String message = "Hello World, Spring MVC @ Javatpoint";
        return new ModelAndView("hello", "message", message);
    }
}

下面给出的 Web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="java.sun.com/xml/ns/javaee"; xmlns:xsi="w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="java.sun.com/xml/ns/javaee java.sun.com/xml/ns/javaee/web-app_2_5.xsd">;
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
</web-app>

我把这一行System.out.println()用于调试目的,我发现这个方法不是用上面提到的url执行的......即http://localhost:8080/springdemo/hello。请提前回答..thanx。

4

1 回答 1

1

这是推测性的,但您的web.xml文件中可能存在映射问题,这将导致 Spring 控制器甚至没有被命中(尽管有正确的@RequestMapping注释)。您的web.xml文件应具有以下 servlet 映射:

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

<servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/springdemo/*</url-pattern>
</servlet-mapping>

现在将您的 URL 粘贴到网络浏览器中,看看您是否可以点击它:

http://localhost:8080/springdemo/hello
于 2016-06-15T10:24:46.100 回答