春季MVC @ModelAttribute示例
@ModelAttribute是最重要的竞彩篮球分析 MVC注释之一。
春季MVC教程:
- 春季MVC你好世界示例
- 春季MVC休眠MySQL示例
- 春季MVC拦截器示例
- 春季MVC angularjs 示例
- 春季MVC @RequestMapping示例
- 弹簧组件,服务,存储库和控制器示例
- 春季MVC @ModelAttribute注释示例
- 春季MVC @RestController注释示例
- 弹簧 MultiActionController示例
- 春季MVC模型图春季MVC文件上传示例
- 春季休息ful 网页服务示例
- 春季休息ful 网页 Service JSON示例
- 春季休息ful 网页服务CRUD示例
- 春季安全 Hello World示例
- 春季安全自定义登录表单示例
@ModelAttribute用于将请求参数与模型对象绑定。假设您有10个请求参数,可以将它们包装到模型对象中,然后将其传递给处理程序方法。
- 会话或ModelMap对象中已经存在对象。
- 使用@ModelAttribute批注注释另一种方法并创建模型对象。该方法将在实际的处理程序调用之前被调用。
例:
马文依赖
2) 我们需要在类路径中添加Jackson json实用程序。
1 2 3 4 5 6 7 |
<依赖> <groupId>com.fastxml.杰克逊.核心</groupId> <artifactId>杰克逊-数据绑定</artifactId> <版>2.4.1</版> </依赖> |
现在,按如下所示更改pom.xml:
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<项目 XML文件ns="http://maven.apache.org/POM/4.0.0" XML文件ns:si="http://www.w3.org/2001/XMLSchema-instance" si:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <模型Version>4.0.0</模型Version> <groupId>com.Arpit.爪哇2blog</groupId> <artifactId>弹簧RestfulWebServicesWithJSONExample</artifactId> <打包>战争</打包> <版>0.0.1-快照</版> <名称>弹簧RestfulWebServicesWithJSONExample 马文 网络应用</名称> <网址>http://maven.apache.org</url> <依存关系> <依赖> <groupId>unit</groupId> <artifactId>unit</artifactId> <版>3.8.1</版> <范围>测试</范围> </依赖> <依赖> <groupId>爪哇x.小服务程序</groupId> <artifactId>爪哇x.小服务程序-api</artifactId> <版>3.1.0</版> </依赖> <依赖> <groupId>组织.弹簧框架</groupId> <artifactId>弹簧-核心</artifactId> <版>${弹簧.版}</版> </依赖> <依赖> <groupId>组织.弹簧框架</groupId> <artifactId>弹簧-网路mvc</artifactId> <版>${弹簧.版}</版> </依赖> <依赖> <groupId>com.fastxml.杰克逊.核心</groupId> <artifactId>杰克逊-数据绑定</artifactId> <版>2.4.1</版> </依赖> </依存关系> <建立> <finalName>弹簧RestfulWebServicesWithJSONExample</finalName> <外挂程式> <插入> <groupId>组织.阿帕奇.专家.外挂程式</groupId> <artifactId>专家-编译器-插入</artifactId> <版>3.1</版> <组态> <资源>${杰克.版}</资源> <目标>${杰克.版}</目标> </组态> </插入> </外挂程式> </建立> <属性> <弹簧.版>4.2.1。发布</弹簧.版> <杰克.版>1.7</杰克.版> </属性> </项目> |
弹簧应用程序配置:
3) 如下更改web.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?XML文件 版="1.0" 编码方式=“ UTF-8”?> <网路-应用程式 XML文件ns:si="http://www.w3.org/2001/XMLSchema-instance" XML文件ns="http://java.sun.com/xml/ns/javaee" si:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 版="3.0"> <显示-名称>原型 已建立 网页 应用</显示-名称> <欢迎-文件-清单> <欢迎-文件>指数.jsp</欢迎-文件> </欢迎-文件-清单> <小服务程序> <小服务程序-名称>弹簧座</小服务程序-名称> <小服务程序-类> 组织.弹簧框架.网路.小服务程序.分派器 </小服务程序-类> <加载-上-启动>1</加载-上-启动> </小服务程序> <小服务程序-映射> <小服务程序-名称>弹簧座</小服务程序-名称> <网址-模式>/</网址-模式> </小服务程序-映射> </网路-应用程式> |
4) 在/ 网页-INF /文件夹中创建一个名为springrest-servlet.xml的xml文件。
如果您想使用不同的弹簧包来搜索控制器,请更改context:component-scan。请参考 春季MVC Hello World示例 了解更多。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<豆子 XML文件ns="http://www.springframework.org/schema/beans" XML文件ns:语境="http://www.springframework.org/schema/context" XML文件ns:多媒体="http://www.springframework.org/schema/mvc" XML文件ns:si="http://www.w3.org/2001/XMLSchema-instance" si:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <多媒体:注解-驱动的/> <语境:零件-扫描 基础-包=“ 组织.arpit.java2blog.controller” /> <豆 类=“ 组织.springframework.web.servlet.view.InternalResourceViewResolver”> <属性 名称=“字首”> <值>/网页-INF/</值> </属性> <属性 名称=“后缀”> <值>.jsp</值> </属性> </豆> <多媒体:默认-小服务程序-处理程序/> </豆子> |
创建bean类
5) Create a 豆 名称 “Country.java”在org.arpit.java2blog.bean中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
包 组织.Arpit.爪哇2blog.豆; 上市 类 国家{ 串 国家的名字; 长 人口; 上市 国家() { 超(); } 上市 国家(串 国家的名字,长 人口) { 超(); 这个.国家的名字 = 国家的名字; 这个.人口=人口; } 上市 串 getCountryName() { 返回 国家的名字; } 上市 虚空 setCountryName(串 国家的名字) { 这个.国家的名字 = 国家的名字; } 上市 长 getPopulation() { 返回 人口; } 上市 虚空 setPopulation(长 人口) { 这个.人口 = 人口; } } |
创建控制器
6) 创建一个名为的控制器“CountryController.java” in 包 组织.arpit.java2blog.controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
包 组织.Arpit.爪哇2blog.控制者; 进口 组织.Arpit.爪哇2blog.豆.国家; 进口 组织.弹簧框架.刻板印象.控制者; 进口 组织.弹簧框架.UI .模型图; 进口 组织.弹簧框架.网路.绑定.注解.型号属性; 进口 组织.弹簧框架.网路.绑定.注解.请求映射; 进口 组织.弹簧框架.网路.绑定.注解.请求方法; 进口 组织.弹簧框架.网路.绑定.注解.RequestParam; @控制者 上市 类 国家Controller { @型号属性 上市 国家 getCountry(@RequestParam 串 国家的名字, @RequestParam 长 人口) { 国家 国家=新 国家(); 国家.setCountryName(国家的名字); 国家.setPopulation(人口); 返回 国家; } @请求映射(值 = “ / addCountry”, 方法 = 请求方法.开机自检) 上市 串 addCountry(@型号属性 国家 国家,模型图 模型) { 模型.addAttribute(“国家的名字”, 国家.getCountryName()); 模型.addAttribute(“人口”, 国家.getPopulation()); 返回 “国家/地区详细信息”; } } |
1 2 3 |
创造 视图 |
修改 index.jsp as以下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<头> <style> .blue-button{ 背景: #25A6E1; 过滤: 程序: DXImageTransform.Microsoft.gradient( startColorstr='#25A6E1',endColorstr ='#188BC0',GradientType = 0); 填充:3px 5px; 颜色:#fff; 字体系列:Helvetica Neue,无衬线字体; 字体大小:12px; 边界半径:2px; -moz-border-radius:2px; -webkit-border-radius:4px; 边境:1px 固体 #1A87B9 } 表 { 字体系列: “ Helvetica Neue”, Helvetica, 无衬线字体; 宽度: 50%; } 日 { 背景: 钢铁蓝; 颜色: 白色; } 吨{ 边境: 1px 固体 灰色; 宽度: 25%; 文字对齐: 剩下; 填充: 5px 10px; } </style> </头> <身体> <形成 行动=“ addCountry” 方法=“帖子”> <表> <TR> <日 科尔斯潘="2">加 国家</日> </TR> <TR> <d>国家</d> <d><输入 类型=“文本” 名称=国家的名字></d> </TR> <TR> <d>人口</d> <d><输入 类型=“文本” 名称=人口> </d></TR> <TR> <d 科尔斯潘="2"><输入 类型=“提交” 类=“蓝色按钮” /></d> </TR> </表> </形成> </身体> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<%@ 页 语言=“ 爪哇” 内容类型=“文本/ html; charset = UTF-8” 页Encoding=“ UTF-8”%> <!DOCTYPE html 上市 “-// W3C // DTD HTML 4.01 Transitional // EN” "http://www.w3.org/TR/html4/loose.dtd"> <html> <头> <元 http-当量=“内容类型” 内容=“文本/ html; charset = UTF-8”> <标题>国家 细节</标题> </头> <身体> 添加 国家 : <h3>国家 名称: {国家的名字}</h3> <h3>人口 : ${人口}</h3> </身体> </html> |
7) It ‘是时候进行Maven构建了。