Java “弹簧靴”;“无可用消息”;错误(状态=404),
我正在使用嵌入Tomcat的Spring Boot。 启动时,它会登录到控制台: s、 w.s.m.m.a.RequestMappingHandlerMapping:将“{[/home]}”映射到公共java.lang.String com.vlad.pet.contactlist.webapp.controller.SampleController.helloWorld(org.springframework.ui.Model) 所以我猜URL映射到了控制器。 但是给了我一个错误404 出现意外错误(类型=未找到,状态=404)。 没有可用的消息 Application.javaJava “弹簧靴”;“无可用消息”;错误(状态=404),,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在使用嵌入Tomcat的Spring Boot。 启动时,它会登录到控制台: s、 w.s.m.m.a.RequestMappingHandlerMapping:将“{[/home]}”映射到公共java.lang.String com.vlad.pet.contactlist.webapp.controller.SampleController.helloWorld(org.springframework.ui.Model) 所以我猜URL映射到了控制器。 但是给了我一个错误404 出现意
@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>
您正在从控制器方法返回“home”,但我在您的项目结构上没有看到home.jsp 我通过启用默认servlet解决了这个问题:
@Configuration
@EnableWebMvc
public class Config extends WebMvcConfigurerAdapter {
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
来源:您可以使用
@RestController
而不是@Controller
@RestController
public class SampleController {
...
在我的例子中,我的eclipse项目显示了一个错误。我必须从eclipse安装mvn,更新maven依赖项,然后从eclipse启动服务器。对不起,这是打字错误,现在已编辑。控制器返回“base”,定义为tiles definition您是否更改了application.properties上的服务器端口?默认值为8080。因此,如果您没有更改它,URL应该是-In-application.properties:server.port=8090