Spring Boot“无可用消息”错误(状态= 404),

新手上路,请多包涵

我正在使用带有嵌入式 Tomcat 的 Spring Boot。当它启动时,它会登录到控制台:

swsmmaRequestMappingHandlerMapping:将“{[/home]}”映射到公共 java.lang.String com.vlad.pet.contactlist.webapp.controller.SampleController.helloWorld(org.springframework.ui.Model)

所以我猜 URL 映射到控制器。但是 http://localhost:8090/home 给我一个错误 404。

出现意外错误(类型=未找到,状态=404)。没有可用的消息

应用.java

 @SpringBootApplication
public class Application extends SpringBootServletInitializer {
    public static void main(final String[] args) {
        SpringApplication.run(Application.class, args);
    }
    //overrides the configure() method to point to itself, so Spring can find the main configuration.
    @Override
    protected final SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
    @Bean
    public ViewResolver getViewResolver() {
        final TilesViewResolver resolver = new TilesViewResolver();
        resolver.setViewClass(TilesView.class);
        return resolver;
    }
    @Bean
    public TilesConfigurer getTilesConfigurer() {
        final TilesConfigurer configurer = new TilesConfigurer();
        configurer.setDefinitions("WEB-INF/tiles/tiles.xml");
        configurer.setCheckRefresh(true);
        return configurer;
    }
}

SampleController.java

 @Controller
public class SampleController {
    @RequestMapping (value = "/home")
    public String helloWorld(Model model) {
        model.addAttribute("pageTitle", "home");
        return "base";
    }
}

tiles.xml

 <tiles-definitions>
    <definition name="base" template="/WEB-INF/tiles/basic/basic-template.jsp">
        <put-attribute name="head" value="/WEB-INF/tiles/basic/head.jsp" />
    </definition>
</tiles-definitions>

我的项目结构

原文由 Vlad Sereda 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 517
1 个回答

您可以使用 @RestController 代替 @Controller

 @RestController
public class SampleController {
...

原文由 zxholy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题