我试图使"你好世界"应用与gradle,Spring引导和Springmvc与最简单的视图解析器和html。
我从thymeleaf spring启动示例开始,我只想删除thymeleaf,使用纯html和InternalResourceViewResolver创建一个更简单的mvc应用程序。我只有一句问候语。我想提供的html位于src/main/webapp/WEB-INF。当我运行应用程序时,我得到
No mapping found for HTTP request with URI [/WEB-INF/greeting.html] in DispatcherServlet with name 'dispatcherServlet'
这是一个常见的错误,网上有很多答案,但似乎没有任何帮助。
这是我的pplication.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这是我的问候ontroller.java
@Controller
public class GreetingController {
@RequestMapping("/greeting")
public String greeting() {
return "greeting";
}
}
这是我的MVC配置。JAVA
@Configuration
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter{
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/");
resolver.setSuffix(".html");
return resolver;
}
}
我用gradle bootRun运行它
这是带代码的回购:https://github.com/driver-pete/spring-mvc-example
这里还有一些线索:
我的假设是调度员servlet以某种方式被配置为服务于/*而不是/像这里和任何地方。然而,我没有web.xml所以这些建议不适用于这里。我看到很多例子如何配置调度servlet编程,但我想保持我的应用程序在最低限度,我怀疑Spring引导应该配置它确定,因为它与thymeleaf工作正常。
在进一步研究之后,我发现了一个替代解决方案,它可以在不添加configureDefaultServletHandling方法的情况下工作。您需要添加一个嵌入式tomcat jsp引擎来构建。格拉德尔:
compile("org.apache.tomcat.embed:tomcat-embed-jasper")
与configureDefaultServletHandling方法不同,此解决方案不仅适用于普通html,而且适用于jsp。
所有解决方案均可从以下网址获得:https://github.com/driver-pete/spring-mvc-example此解决方案在master上可用。Biju的解决方案位于DefaultServletHandling_解决方案分支上。
视图解析器也可以配置在Spring-Boot Web应用程序的application.properties
文件中,如下所示:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
您只需要启用默认servlet,这可以通过将以下内容添加到MVC配置中来实现:
@Configuration
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter{
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/");
resolver.setSuffix(".html");
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
本质上,Spring不知道如何在本地处理这些内容(可能是jsp),而这种配置是告诉它将其委托给容器的方法。
问题内容: 我正在尝试使用最简单的视图解析器和html创建gradle,spring boot和spring mvc的“ hello world”应用程序。 我从thymeleaf春季启动示例开始,我只是想删除thymeleaf,以使用纯html和InternalResourceViewResolver创建一个更简单的mvc应用程序。我要提供一个单独的greeting.html文件,它位于src
我使用的是仅注释配置,服务器启动,但当我访问某个页面时,错误显示: 警告:在名为“org”的DispatcherServlet中,找不到URI为[/WEB-INF/view/main.jsp]的HTTP请求的映射。springframework。网状物servlet。调度员Servlet-d7259e' 控制器映射工作正常,但没有加载JSP页面。 我用的是Jetty 9.2.0。M0和Spring
Dispatcher servlet(servlet-context.xml) http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xs
我写了一个spring boot项目。它有三个文件。 appconfig.java HelloController.java 当我尝试运行它时,它出现了错误“没有为名为'DispatcherServlet中URI[/springc1_01/]的HTTP请求找到映射”。这是因为服务器没有找到控制器还是其他原因?THX.
我正在尝试学习Spring Security性,第一个代码示例是在运行URL“http://localhost:8080/spring-security-helloworld-xml/welcome”并使用jetty插件作为服务器时出现这样的错误。 错误:org.springframework.web.servlet.pageNotFound noHandlerFound警告:在名为“mvc-di
我使用的是从web下载的代码,是Spring MVC Hibernate Maven Spring数据的一个示例,在这段代码中,页面是jsp。现在我想介绍Thymeleaf而不是jsp si,我已经创建了一个HTML问候页面,但是当我进入这个页面时,我得到了这个错误 09:16:23.622[http-nio-8080-exec-7]警告o.s.web。servlet。PageNotFound-在