vza*_*huk 1 java spring spring-mvc requestdispatcher
我配置了应用程序并将"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);
}
}
Run Code Online (Sandbox Code Playgroud)
处理请求的Controller类看起来像这样:
@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";
}
}
Run Code Online (Sandbox Code Playgroud)
视图文件:\ WEB-INF\views\welcome.jsp
<html>
<body>
<h1>Hello, : ${name}</h1>
<h2>Message : ${message}</h2>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
应用程序结构: 欢迎应用程序结构
我认为配置文件中缺少某些东西,但我看不到.你可以访问错误和意味着什么:"找不到带URI的HTTP请求的映射[/WEB-INF/views/welcome.jsp]"?我应该提供像dispatcher-servlet.xml这样的xml configuratin吗?先感谢您.
更新:我猜我的DispatcherServlet无法找到合适的视图.我已经尝试完全删除/ WEB-INF目录,但没有任何变化.这段代码可能有问题:
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
**viewResolver.setPrefix("/WEB-INF/views/");**
Run Code Online (Sandbox Code Playgroud)
....谁能猜出什么可能是错的?(如果anotation @EnableAutoConfiguration不允许定义viewResolver的前缀,可能会这样吗?
小智 5
我做了类似你的简单项目.你可以查看我的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
您还可以配置IDEA以运行该命令.转到Run-> Edit Configuration,单击左侧的绿色加号,然后选择Maven.然后在"命令行"字段中写入"spring-boot:run",按确定.并运行此配置.请注意,您需要@ComponentScan({"controllers"}),因为您的包结构 - 您的Application包与您的控制器不同.
| 归档时间: |
|
| 查看次数: |
5716 次 |
| 最近记录: |