/**点击左边tree 进入个人资料 页面* @throws TNBusinessException */
public String queryPersonalInfo() throws TNBusinessException{
ActionContext ctx = ActionContext.getContext();
//取个人资料
@SuppressWarnings("rawtypes")
Map session = ctx.getSession();
UserSdto user = (UserSdto)session.get("user");
Person resultPerson = this.personRelevanceSo.inquiryPersonById(user.getPersonId(),QueryLevel.LEVEL1, initControl());
ctx.put("resultPerson",resultPerson);
Long age = getAgeByBirthday(resultPerson.getBirthday());
ctx.put("age",age);
Address resultAddress = this.personRelevanceSo.inquiryAddressByPersonID(String.valueOf(user.getPersonId()), initControl());
String address = resultAddress.getProvinceName() + resultAddress.getCityName() + resultAddress.getAreaName()
+ resultAddress.getCommunityName() + resultAddress.getBuildName()
+ resultAddress.getUnitName() + resultAddress.getHouseNum();
ctx.put("address",address);
return "queryPersonalInfo/success";
}
* 将String类型的日期转换成date类型
*/
private Date strDateChangeToDate(String dateStr){
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* 根据生日,获取年龄
*/
private Long getAgeByBirthday(String birthday){
//获取当前时间
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = df.format(calendar.getTime());
Date birthDate = strDateChangeToDate(birthday);
Date currentDate = strDateChangeToDate(dateStr);
Long num1 = ((currentDate.getTime() -birthDate.getTime())/(24*60*60*1000))/365;
Long num2 = ((currentDate.getTime() -birthDate.getTime())/(24*60*60*1000))%365;
if(num2 > 0 ){
num1 = num1 +1;
}
return num1;
}
以上JAVA代码实现了根据session中的用户id读取用户信息,其中age信息是根据当前时间减去birthday得到的。