猿问

在 Eclipse 中使用 Spring MVC 5 的新项目,但出现错误 404

我是 Spring MVC 的新手,我正在尝试制作简单的 HelloWorld 程序,

应用配置

package main.java.config;



import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import org.springframework.web.servlet.view.InternalResourceViewResolver;

import org.springframework.web.servlet.view.JstlView;


@Configuration

@EnableWebMvc

@ComponentScan(basePackages = {

"main.java"

})

public class AppConfig {


@Bean

public InternalResourceViewResolver resolver() {

    InternalResourceViewResolver resolver = new InternalResourceViewResolver();

    resolver.setViewClass(JstlView.class);

    resolver.setPrefix("/WEB-INF/views/");

    resolver.setSuffix(".jsp");

    return resolver;

}

}

调度器 Servlet 初始化器


package main.java.config;


import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;


public class ServletDispatcherInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {


@Override

protected Class <?> [] getRootConfigClasses() {

    // TODO Auto-generated method stub

    return null;

}


@Override

protected Class <?> [] getServletConfigClasses() {

    return new Class[] {

        AppConfig.class

    };

}


@Override

protected String[] getServletMappings() {

    return new String[] {

        "/"

    };

}

}

控制器


package main.java.controller;


import java.time.LocalDateTime;


import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;


}

}

错误

http://img2.sycdn.imooc.com/648961fb00018f6806480216.jpg

我尝试清理服务器,关闭并打开浏览器,重新发布我的项目。

我现在不知道该怎么办,请帮助我。



繁华开满天机
浏览 185回答 2
2回答

守候你守候我

可能的问题之一是您的包命名错误。maven 项目的文件夹结构如下所示:src &nbsp;&nbsp;|_&nbsp;main &nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;java &nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;your.actual.package &nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;resources &nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;webapp &nbsp;&nbsp;|_&nbsp;test &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;java &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;your.actual.package所以你的实际包在文件夹之后开始java。这意味着您实际上拥有:config包而不是main.java.config类AppConfigcontroller包而不是main.java.controllerforJavaControllermodel包而不是main.java.modelforHelloWorld您还需要更改您的@ComponentScan.&nbsp;将其留空以扫描根包。或者尝试使用,basePackageClasses如果这不起作用。之后你需要检查你的war文件。解压它并检查该WEB-INF文件夹是否包含.class所有已创建类的文件以及views您的helloworld.jsp文件。我希望这个能帮上忙。

胡说叔叔

1-您应该在 @ComponentScan 注释而不是 main.java 中列出所有包,包括配置类:&nbsp;@ComponentScan(basePackages = {"config","controller"})或者将所有包移动到父包(例如:com.project)中,例如 com.project.config、com.project.controller、com.project.model 并使用它:@ComponentScan(basePackages = {"com.project"})2- 检查你的项目的 web 依赖程序集,它应该是这样的:如果您的配置不是这样,您应该通过单击添加按钮并选择 java 构建路径条目来添加它。并在下一个窗口中选择 Maven Dependencies。

缥缈止盈

不确定问题到底出在哪里,但这里有一个完整的项目供您使用。您可以从这里获得帮助:https://github.com/imrangthub/BlogSolutionUsingSpringHibernateWithClassLevelConfig
随时随地看视频慕课网APP

相关分类

Java
我要回答