没有合适的资源?快使用搜索试试~ 我知道了~
Spring MVC 到底是如何工作的?1
需积分: 0 0 下载量 2 浏览量
2022-08-03
16:27:46
上传
评论
收藏 262KB PDF 举报
温馨提示
试读
13页
Spring MVC 到底是如何工作的?1
资源推荐
资源详情
资源评论
Spring MVC 到底是如何⼯作的?
2017-11-23 分类:JAVA开发、编程开发、⾸页精华0⼈评论
本⽂由码农⽹ – ⼩峰原创翻译,转载请看清⽂末的转载要求,欢迎参与我
们的付费投稿计划!
这篇⽂章将深⼊探讨Spring框架的⼀部分——Spring Web MVC的强⼤功能及
其内部⼯作原理。
这篇⽂章的源代码可以在GitHub上找到。
项⽬安装
在本⽂中,我们将使⽤最新、最好的Spring Framework 5。我们将重点介绍
Spring的经典Web堆栈,该堆栈从框架的第⼀个版本中就崭露头⾓,并且现
在依然是⽤Spring构建Web应⽤程序的主要⽅式。
对于初学者来说,为了安装测试项⽬,最好使⽤Spring Boot和⼀些初学者依
赖项;还需要定义parent:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.M5</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
请注意,为了使⽤Spring 5,我们还需要使⽤Spring Boot 2.x。截⽌到撰写本
⽂之时,这依然是⾥程碑发布版,可在Spring Milestone Repository中找到。
让我们把这个存储库添加到你的Maven项⽬中:
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
你可以在Maven Central上查看Spring Boot的当前版本。
⽰例项⽬
为了理解Spring Web MVC是如何⼯作的,我们将通过⼀个登录页⾯实现⼀个
简单的应⽤程序。为了显⽰登录页⾯,我们需要为上下⽂根创建带有GET映
射的@Controller注解类InternalController。
hello()⽅法是⽆参数的。它返回⼀个由Spring MVC解释为视图名称的
String(在⽰例中是login.html模板):
import org.springframework.web.bind.annotation.GetMapping;
@GetMapping("/")
public String hello() {
return "login";
}
为了处理⽤户登录,需要创建另⼀个⽤登录数据处理POST请求的⽅法。然
后根据结果将⽤户重定向到成功或失败的页⾯。
请注意,login()⽅法接收域对象作为参数并返回ModelAndView对象:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.servlet.ModelAndView;
@PostMapping("/login")
public ModelAndView login(LoginData loginData) {
if (LOGIN.equals(loginData.getLogin())
&& PASSWORD.equals(loginData.getPassword())) {
return new ModelAndView("success",
Collections.singletonMap("login", loginData.getLogin()));
} else {
return new ModelAndView("failure",
Collections.singletonMap("login", loginData.getLogin()));
}
}
ModelAndView是两个不同对象的持有者:
Model——渲染页⾯数据的键值映射
View——填充模型数据的页⾯模板
连接这些是为了⽅便,这样控制器⽅法可以⼀次返回它们。
要渲染HTML页⾯,使⽤Thymeleaf作为视图模板引擎,该引擎具有可靠和开
箱即⽤的与Spring的集成。
Servlet作为Java Web应⽤程序的基础
那么,当在浏览器中输⼊http:// localhost:8080/时,按Enter键,然后请求到
达Web服务器,实际发⽣了什么?你如何从这个请求中看到浏览器中的Web
表单?
鉴于该项⽬是⼀个简单的Spring Boot应⽤程序,因此可以通过
Spring5Application运⾏它。
剩余12页未读,继续阅读
资源评论
yiyi分析亲密关系
- 粉丝: 22
- 资源: 321
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功