java 数据绑定的几种方式及相关注意事项-持续更新
spring mvc 中会遇到各种数据绑定,有些不常用的,但是千万不要觉得不可以,没有什么是不可以的,只要能够想到,就可以。
数据绑定方式:
1.
注意:
当数据为包装类型的数字型时,如果Long hospitalId为空或-1,则Long departmentAllId= -1,如果Lang departmentAllId为空或-1 则Lang hospitalId = -1,既a和b不能同时存在。
如果不传hospitalId,那么在null和数字之间的判断极可能出现空指针,因为如果null!=null 后 使用==和数字判断时,hospitalId会做类型转换,从而导致空指针。
if(hospitalId!=null && hospitalId!=-1){
departmentAllId = -1;
} else {
departmentId = -1;
}
2. 对象多个属性为集合数据
json:
//String json = "{'signedSummaryId':1,'tilte':'bbbbb','archiveDate':'1999-2-2','createdDoctor':1001,'createdDoctorName':'ccccc','main_suit':[{'content':'1111111','pic':'1111111','voice':'1111111','archiveTypeName':'主诉','archiveType':1}],'body_check':[{'content':'2222222','pic':'2222222','voice':'222222','archiveTypeName':'查体','archiveType':2}],'diagnosis':[{'content':'3333','pic':'3333','voice':'333','archiveTypeName':'诊断','archiveType':3}],'recipel':[{'content':'444','pic':'44','voice':'44444','archiveTypeName':'处方','archiveType':4},{'content':'444aaa','pic':'44aaa','voice':'44444aaa','archiveTypeName':'处方','archiveType':4}],'report':[{'content':'555','pic':'55555','voice':'5555','archiveTypeName':'报告单','archiveType':5},{'content':'55aaa','pic':'555aaa','voice':'5555aaa','archiveTypeName':'报告单','archiveType':5}],'discharge_abstract':[{'content':'7777','pic':'7777','voice':'77777','archiveTypeName':'出院小结','archiveType':7}],'proof_of_diagnosis':[{'content':'8888','pic':'888','voice':'8888','archiveTypeName':'诊疗证明','archiveType':8}],'up_referral':[{'content':'9999','pic':'999999','voice':'99999','archiveTypeName':'上转','archiveType':9}],'down_referral':[{'content':'1010110101','pic':'1010101010','voice':'10100110','archiveTypeName':'下转','archiveType':10}],'follow_Up':[{'content':'666','pic':'3666','voice':'3666','archiveTypeName':'随诊','archiveType':6}]}";
"{
'signedSummaryId': 1,
'tilte': 'bbbbb',
'archiveDate': '1999-2-2',
'createdDoctor': 1001,
'createdDoctorName': 'ccccc',
'main_suit': [
{
'content': '1111111',
'pic': '1111111',
'voice': '1111111',
'archiveTypeName': '主诉',
'archiveType': 1
}
],
'body_check': [
{
'content': '2222222',
'pic': '2222222',
'voice': '222222',
'archiveTypeName': '查体',
'archiveType': 2
}
],
'diagnosis': [
{
'content': '3333',
'pic': '3333',
'voice': '333',
'archiveTypeName': '诊断',
'archiveType': 3
}
],
'recipel': [
{
'content': '444',
'pic': '44',
'voice': '44444',
'archiveTypeName': '处方',
'archiveType': 4
},
{
'content': '444aaa',
'pic': '44aaa',
'voice': '44444aaa',
'archiveTypeName': '处方',
'archiveType': 4
}
],
'report': [
{
'content': '555',
'pic': '55555',
'voice': '5555',
'archiveTypeName': '报告单',
'archiveType': 5
},
{
'content': '55aaa',
'pic': '555aaa',
'voice': '5555aaa',
'archiveTypeName': '报告单',
'archiveType': 5
}
],
'discharge_abstract': [
{
'content': '7777',
'pic': '7777',
'voice': '77777',
'archiveTypeName': '出院小结',
'archiveType': 7
}
],
'proof_of_diagnosis': [
{
'content': '8888',
'pic': '888',
'voice': '8888',
'archiveTypeName': '诊疗证明',
'archiveType': 8
}
],
'up_referral': [
{
'content': '9999',
'pic': '999999',
'voice': '99999',
'archiveTypeName': '上转',
'archiveType': 9
}
],
'down_referral': [
{
'content': '1010110101',
'pic': '1010101010',
'voice': '10100110',
'archiveTypeName': '下转',
'archiveType': 10
}
],
'follow_Up': [
{
'content': '666',
'pic': '3666',
'voice': '3666',
'archiveTypeName': '随诊',
'archiveType': 6
}
]
}"
Gson gson = new Gson();
ArchiveAddModel archiveAddModel = gson.fromJson(json, ArchiveAddModel.class);
java 数据绑定的几种方式及相关注意事项-持续更新的更多相关文章
- Java序列化的几种方式以及序列化的作用
Java序列化的几种方式以及序列化的作用 本文着重讲解一下Java序列化的相关内容. 如果对Java序列化感兴趣的同学可以研究一下. 一.Java序列化的作用 有的时候我们想要把一个Java对象 ...
- python实现单例模式的三种方式及相关知识解释
python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...
- Java创建对象的4种方式?
[Java创建对象的4种方式?] 1)通过new语句实例化一个对象 2)通过反射机制创建对象 3)通过clone()方法创建一个对象 (复制) 4)通过反序列化方式创建对象
- Java创建对象的几种方式
解析:Java创建对象的几种方式(重要):(1) 用new语句创建对象,这是最常见的创建对象的方法.(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Co ...
- &和&&的共同点和区别、Java字符含义和Java创建对象的几种方式
一.&和&&的共同点和区别 1.&和&&的联系(共同点): &和&&都可以用作逻辑与运算符,但是要看使用时的具体条件来决定. 操 ...
- Java创建对象的几种方式。
Java创建对象的几种方式(重要): (1) 用new语句创建对象,这是最常见的创建对象的方法. (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Con ...
- AngularJs学习——实现数据绑定的三种方式
三种方式: 方式一:<h5>{{msg}}</h5> 此方式在页面刷新的时候会闪现{{}} 方式二:<h5 ng-bind="msg">< ...
- 使用Maven运行Java main的3种方式
使用Maven运行Java main的3种方式 原文 http://blog.csdn.net/qbg19881206/article/details/19850857 主题 Maven maven ...
- 面试阿里,字节跳动,华为必须知道的Java创建对象的5种方式
Java创建对象的5种方式 1.直接new,调用了构造器2.通过clone(),没有调用构造器3.通过反射,调用了构造器4.通过反序列化,没有调用构造器5.通过Unsafe类的allocateInst ...
随机推荐
- 使用Openswan接入Windows Azure Site to Site VPN
Winodows Azure的Site to Site VPN支持主流的防火墙和路由器等接入设备.具体型号和系列请参考下表: VENDOR DEVICE FAMILY MINIMUM OS VERSI ...
- 利用HTML实现软件的UI
先看看下面的实例 这是应朋友之邀编写的查询职业技能鉴定考核的分数的软件.看过我之前的博文的,可知这是借用我之前的网页界面. 这个UI,如果用WinForm的控件来实现,难度很高. 于是另辟蹊径,用We ...
- ACCP7.0优化Myschool内侧题
1) 在SQL Server 中,为数据库表建立索引能够(C ). 索引:是SQL SERVER编排数据的内部方法,是检索表中数据的直接通道 建立索引的作用:大大提高了数据库的检索速度,改善数据库性能 ...
- linux安装jdk 不成功,找不到版本问题
http://www.linuxidc.com/Linux/2015-01/112030.htm 配置文件 export JAVA_HOMEexport JRE_HOMEexport CLASSPAT ...
- Splay整理
伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(log n)内完成插入.查找和删除操作.(来自百科) 伸展树的操作主要是
- 苹果系统里面部署ASP.NET
需要在global文件里设置一下 protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterCon ...
- python数字图像处理(17):边缘与轮廓
在前面的python数字图像处理(10):图像简单滤波 中,我们已经讲解了很多算子用来检测边缘,其中用得最多的canny算子边缘检测. 本篇我们讲解一些其它方法来检测轮廓. 1.查找轮廓(find_c ...
- Last-Modified,Etag,Expire区别
Last-Modified 是什么 Last-Modified 是 HttpHeader 中的资源的最后修改时间,如果带有 Last-Modified ,下一次发送 Http 请求时,将会发生带 If ...
- 【一】我眼中的FeatureLayer
1.来源 MapService 或者 FeatureService(10.0后)中的一个图层 Tabel 动态空间 2.使用 符号化 首先看下FLyr的继承关系:FeatureLayer Graph ...
- C# 值类型和引用类型
一.基本概念 C#只有两种数据类型:值类型和引用类型 值类型在线程栈分配空间,引用类型在托管堆分配空间 值类型转为引用类型称成为装箱,引用类型转为值类型称为拆箱 以下是值类型和引用类型对照表 从上图可 ...