爱读书的旅行者 2009-10-30
今天用ssh做好了一个项目:
最后测试时,测试人员要求改写东西:
描述一下项目:
在jsp页面展示了一些数据!使用iterator 迭代出List<User> 中的属性值;
在展示是有一列是 User 的状态(status)数据库中存的是 0 和 1 两个值!在页面显示
0: 否
1:是
要求如果也卖弄取得值是:"0 “,即要显示:"否"
这是 否有个超链接,触发一个js函数将 “否” 改为“ 是”(注意:这里是要将数据库中的0也要变为1的):一般思路!写个查询的方法,经过调用action改变他的显示;
但是好像用着方法就一个简单的改变一个值!就主要再调一次action何况,在查询时还要有页面其他发的参数作条件,显然在ssh'中还想没有ajax方便!
但是有一种方法,也是需要些Service, Mnager,但是不需要写action,这就是
DWR
DWR:
使用:
在jsp页面写如下:
这个是固定写法!
jsp页面要导入的:
<script language="javascript" src="${path}/page/wrm/js/util.js"></script>
<scriptlanguage="javascript"src="${path}/page/wrm/js/engine.js"></script>
<script language="javascript" src="${path}/dwr/interface/AnalyseCompareService.js"></script>AnalyseCompareService.js 与下边的配置的serivce名字相同;
要在dwr.xml(该文件放在WEB_INF 下)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEdwrPUBLIC"-//GetAheadLimited//DTDDirectWebRemoting2.0//EN""http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<convertconverter="bean"match="com.iman.nrms.nrmwns.common.domain.BaseCode"/>
<createcreator="spring"javascript="AnalyseCompareService">
<paramname="beanName"value="analyseCompareService"/>
<includemethod="updateAnalyseCompareDealFlag"/>
</create>
<convertconverter="bean"match="com.iman.nrms.nrmwns.common.domain.BaseCode"/>
<createcreator="spring"javascript="AnalyseMessageService">
<param name="beanName" value="analyseMessageService"/><!--analyseMessageService与spring中的service配置的名字相同--> <include method="updateAnalyseMessageDealFlag"/>
<!--updateAnalyseMessageDealFlag调用Service的方法-->
</create>
</allow>
</dwr>下边你就可以调用了!
记住这里只是省掉了action但是Service,Manager还是要写的!在审判日国内配一下就好了!
jsp使用:
function test(){
AnalyseCompareService.updateAnalyseCompareDealFlag(id,function(data)
{
}
);
}有了与Ajax一样的效果!