我对应用程序进行了配置,并将“DispatcherServlet”编码为viewResolver,如下所示:
@Configuration
@EnableWebMvc
@ComponentScan ({"controllers"})
@EnableAutoConfiguration
@SpringBootApplication
public class Application {
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
}
处理请求的控制器类如下所示:
@Controller
public class HelloControllerImpl {
@RequestMapping(value= "/welcome", method= RequestMethod.GET)
public String getWelcomePage(ModelMap model) {
model.addAttribute("message", "Spring 3 MVC - Hello World");
model.addAttribute("name", "vzateychuk");
return "welcome";
}
}
视图文件:\WEB-INF\view\welcome.jsp
<html>
<body>
<h1>Hello, : ${name}</h1>
<h2>Message : ${message}</h2>
</body>
</html>
应用程序结构:欢迎使用应用程序结构
我想配置文件中缺少一些东西,但是我看不见。请问哪里出了问题,什么意思:“没有找到与URI[/WEB-INF/view/welcome.jsp]的HTTP请求映射”?我应该提供像dispatcher-servlet.xml这样的xml配置吗?谢谢你。
更新:我猜我的DispatcherServlet找不到合适的视图。我已经尝试完全删除 /WEB-INF目录,但是没有任何变化。可能是这个代码有问题:
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
**viewResolver.setPrefix("/WEB-INF/views/");**
.... 有人能猜出哪里不对吗?(可能是因为anotation@EnableAutoConfiguration不允许定义viewResolver的前缀吗?
配置解析器配置application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
spring boot将自动配置内部视图解析器。
你需要在pom中添加jstl罐
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
或
要使视图解析器工作,请添加
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
spring boot为您提供了一个示例
我做了一个和你类似的简单项目。你可以查看我的github
你要做的是:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
mvn spring-boot:run
注意,由于您的包结构,您需要@ComponentScan({“controllers”}),因为您的应用程序类位于与控制器不同的包中。
当我把它放在我的url上时,浏览器会显示这样一条消息:“请求的资源(/ChickenTest/index.jsp)不可用。”eclipse控制台会显示这样一条消息:“在名为“DispatcherServlet”的DispatcherServlet中,找不到URI为[/ChickenTest/index]的HTTP请求的映射。” 控制器: mvc配置。xml: web.xml:
我想配置文件中缺少一些东西,但我看不到。 当我放入浏览器-->localhost:8080/procura/notifications-->我在控制台中得到的是-->org.springframework.web.servlet.DispatcherServlet noHandlerFound警告:在名为“DispatcherServlet”的DispatcherServlet中没有找到URI[/
在Spring项目中, 警告:org。springframework。网状物servlet。PageNotFound-在名为“appServlet”的DispatcherServlet中找不到URI为[/]的HTTP请求的映射 错误不断发生。我不知道为什么会发生这些错误。 请你帮我... servlet上下文。xml 正如你在下面看到的,我指定了@Controller。 BoardControll
我在IntelliJ 14中创建了一个spring mvc项目,就像http://www.tutorialspoint.com/spring/spring_web_mvc_framework.htm做但是出现了这个问题:在名为“HelloWeb”的DispatcherServlet中找不到URI为[/test/WEB-INF/jsp/hello.jsp]的HTTP请求的映射 我在谷歌上搜索到了st
我看到了类似的问题,并尝试将网址从/*映射到/,但它不起作用。我也尝试过直接从浏览器点击网址,但也不起作用。我对Spring不熟悉,有人能帮我吗? 还有我的dispatcherservlet servlet。xml是 最后是我的控制器 我的索引。jsp作为欢迎文件 当我运行时,我可以提交并点击add方法的URL,但我收到警告:在名为“DispatcherServlet”的DispatcherSer
RequestToViewNameTranslator接口可以在逻辑视图名未被显式提供的情况下,决定一个可用的逻辑视图View名。 DefaultRequestToViewNameTranslator能够将请求URL映射到逻辑视图名上去,如下面代码例子所示: public class RegistrationController implements Controller { publi