此方法会抛出的异常:
1、找不到原始的bean 2、使用此方法必须捕捉异常。
二、此文的Data全部为获取的对象。
//踩坑分析
List projectlist = projectAssembl.getProjectList(userOrgRelation);
//beanutils复制数据问题,必须每次进入for循环new出一个新对象,才能保证数据正确性。
for (int i = 0; i < projectlist.size();i++){
ProjectDto pj = newProjectDto(); BeanUtils.copyProperties(pj,projectlist.get(i));
}
2、两个包(Spring和apache 的包)
1、packageorg.springframework.beans;中的
BeanUtils.copyProperties(A,B); 是A中的值付给B
FinCpDocDO finCpDoc = finCpDocService.selectByDocNo(orderNo);
FinCpDocDto finCpDto = new FinCpDocDto();
if (finCpDoc == null){
throw new ServiceException("查无该订单" + "orderNo:" + orderNo);
}
try{
BeanUtils.copyProperties(finCpDoc, finCpDto);
}
2、packageorg.apache.commons.beanutils;(常用)
BeanUtils.copyProperties(A,B);
是B中的值付给A
for(OboFeeDO feeDO : oboFeeList){
if(feeDO.getPayTime()!=null){
ErpOboFeeDto feeDto = new ErpOboFeeDto();
BeanUtils.copyProperties(feeDto, feeDO);
oboFeList.add(feeDto);
}
}
tobean()和BeanUtils.copyProperties(dto, tq);(后赋前)方法。(这两个方法必须保持安卓和后台数据库字段唯一对应)
(1)业务层处理
public boolean saveQuaAcceptance(QuaAcceptanceDto dto) throws Exception {
TQuaAcceptance tq = new TQuaAcceptance();
if(dto!=null){
try {
//此方法拿不到时间类型的值,可以通过get方法获取到时间类型的值。设置单个属性值。
BeanUtils.copyProperties(dto, tq);(后赋前)
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
(2)App业务层处理方式。
//从安卓获取对象。
String date = request.getParameter("date");
//工具类
Util u = new Util();
//调用解码方法,参考如下
QuaAcceptanceDto dto = (QuaAcceptanceDto) u.getRequestDate( data,QuaAcceptanceDto.class);
2.解决字符串乱码问题
request.setCharacterEncoding(“utf-8”);//手机端默认为utf—8格式的;全局统一设置
response.setCharacterEncoding(“utf-8”);//返回给手机端的数据字符格式。
3、
public Object getRequestDate(String date, Class objClass) {
//先转换对象类型。
JSONObject json = JSONObject.fromObject(date);
// 将一个json的字符串转化成为java Bean。并将所有的属性赋值过去。
Object obj = JSONObject.toBean(json, objClass);
return obj;
}
4、
//json数据解码封装方法
publicString getURLDecoder(String data){
Strings="";
try {
s =URLDecoder.decode(data, "gbk");
} catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
returns;
}
5、
try {
//获取json对象中的属性值。处理时间问题。
JSONObject jsonObject = JSONObject.fromObject(data);
//获取属性值。
String AcceptTime = (String)jsonObject.get("AcceptTimeStr");
// 转换时间类型
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-ddHH:mm");
Date date = sim.parse(AcceptTime);