25、使百分比的数据显示2位小数
publicstaticString div(doublev1,doublev2){
DecimalFormat df=newDecimalFormat("##0.00%");
returndf.format(Double.valueOf((v1/v2)));
}
26、数据缓存问题
1)在Action中声明private Cache ehCache;
2)放入缓存
publicvoidputEcache(){
try{
booleanb=false;//判断是否是全部
if(codenames==null||codenames.equals("")){
codenameList=kpiTotalManagerService.findAllCodeName();
b=true;
}
if(fromtime==null||fromtime.trim().equals("")){
fromtime=DateUtil.getBeforMonthFirstDate();//默认是当前月的前一个月的1号
}
if(totime==null||totime.trim().equals("")){
totime=DateUtil.getMonthFirstDate();//默认是当前月的1号
}
String jsoncolumns=this.findColumns(codenames);//grid的列头
String jsondatas=this.kpiTotalManagerService.findData(codenames,codenameList,fromtime,totime,isfirst);//grid的列头
String jsonfields=this.kpiTotalManagerService.findFields(b,codenames,codenameList);
String gridJson="{'fields':"+jsonfields+", 'data':"+jsondatas+", 'columns':"+jsoncolumns+",'success':true, 'fromtime':"+fromtime+",'totime':"+totime+"}";
ElementgridJson1 =newElement("gridJson1", gridJson);
ehCache.put(gridJson1);
}catch(Exception e) {
log.debug(e.getMessage());
e.printStackTrace();
}
}
3)a.配置缓存ehcache.xml(一般放在WEB-INF里)
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
memoryStoreEvictionPolicy="LFU"/>
b.配置spring中的缓存
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
/WEB-INF/ehcache.xml
class="org.springframework.cache.ehcache.EhCacheFactoryBean">
defCache
c.在spring配置一套Action/service/Dao时需要在Action中再加入一段代码,如下
ref的值与步骤b的id值一致
d.在配置job时需要再把Action中有关放入缓存的方法配置上,如
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
putEcache
f.配置触发任务条件
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
120000
g.配置启动定时执行
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
4)从缓存中取数据
publicString querySysList() {
HttpServletResponseresponse=ServletActionContext.getResponse();
response.setContentType("text/json;charset=UTF-8");
try{
booleanb=false;//判断是否是全部系统的这个条件
booleanbb=false;//判断开始时间月份是否是传的空
booleanbbb=false;//判断结束时间月份是否是传的空
PrintWriter writer=response.getWriter();
if(codenames==null||codenames.equals("")){
codenameList=kpiTotalManagerService.findAllCodeName();
b=true;
}
if(fromtime==null||fromtime.trim().equals("")||fromtime.trim().equals(DateUtil.getBeforMonthFirstDate())){
fromtime=DateUtil.getBeforMonthFirstDate();//默认是当前月的前一个月的1号
bb=true;
}
if(totime==null||totime.trim().equals("")||totime.trim().equals(DateUtil.getMonthFirstDate())){
totime=DateUtil.getMonthFirstDate();//默认是当前月的1号
bbb=true;
}
String gridJson ="";
if(b&&bb&&bbb){//当三个都为true时走缓存中的数据
Element ele =ehCache.get("gridJson1");
if(null!= ele) {
Object eleObj = ele.getObjectValue();
if(null!= eleObj && eleObjinstanceofString) {
gridJson = (String) eleObj;
}
}
}
if(gridJson!=null&&!gridJson.equals("")){
writer.print(gridJson);
}else{
String jsoncolumns=this.findColumns(codenames);//grid的列头
String jsondatas=this.kpiTotalManagerService.findDatas(codenames,codenameList,fromtime,totime,isfirst);//grid的列头
String jsonfields=this.kpiTotalManagerService.findFields(b,codenames,codenameList);
gridJson="{'fields':"+jsonfields+", 'data':"+jsondatas+", 'columns':"+jsoncolumns+",'success':true, 'fromtime':"+fromtime+",'totime':"+totime+"}";
System.out.println(gridJson);
writer.print(gridJson);//放入缓存
}
}catch(Exception e) {
log.debug(e.getMessage());
e.printStackTrace();
}
returnnull;
}