为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁华开满天机 2023-06-14 14:44:28
我是 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 {@Beanpublic 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 {@Overrideprotected Class <?> [] getRootConfigClasses() {    // TODO Auto-generated method stub    return null;}@Overrideprotected Class <?> [] getServletConfigClasses() {    return new Class[] {        AppConfig.class    };}@Overrideprotected 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;}}错误我尝试清理服务器,关闭并打开浏览器,重新发布我的项目。我现在不知道该怎么办,请帮助我。
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

可能的问题之一是您的包命名错误。maven 项目的文件夹结构如下所示:

src
  |_ main
  |     |_ java
  |     |     |_ your.actual.package
  |     |_ resources
  |     |_ webapp
  |_ test
        |_ java
              |_ your.actual.package

所以你的实际包在文件夹之后开始java。这意味着您实际上拥有:

  • config包而不是main.java.configAppConfig

  • controller包而不是main.java.controllerforJavaController

  • model包而不是main.java.modelforHelloWorld

您还需要更改您的@ComponentScan. 将其留空以扫描根包。或者尝试使用,basePackageClasses如果这不起作用。

之后你需要检查你的war文件。解压它并检查该WEB-INF文件夹是否包含.class所有已创建类的文件以及views您的helloworld.jsp文件。

我希望这个能帮上忙。


查看完整回答
反对 回复 2023-06-14
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

1-

您应该在 @ComponentScan 注释而不是 main.java 中列出所有包,包括配置类: @ComponentScan(basePackages = {"config","controller"})

或者

将所有包移动到父包(例如:com.project)中,例如 com.project.config、com.project.controller、com.project.model 并使用它:

@ComponentScan(basePackages = {"com.project"})

2- 检查你的项目的 web 依赖程序集,它应该是这样的:

//img1.sycdn.imooc.com//648962150001eec606110305.jpg

如果您的配置不是这样,您应该通过单击添加按钮并选择 java 构建路径条目来添加它。

//img1.sycdn.imooc.com//648962200001ded104340439.jpg

并在下一个窗口中选择 Maven Dependencies。



查看完整回答
反对 回复 2023-06-14
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

不确定问题到底出在哪里,但这里有一个完整的项目供您使用。您可以从这里获得帮助:

https://github.com/imrangthub/BlogSolutionUsingSpringHibernateWithClassLevelConfig


查看完整回答
反对 回复 2023-06-14
  • 2 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信