java开发遇到最大的问题_java开发遇到的问题总结(三)

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值