dwr创建对象的方式:
<dwr>
<allow>
<create creator="new" javascript="s1">
<param name="class" value="com.wap.hotel.util.DwrService" />
</create>
<!--通过spring来创建对象->
<create creator="spring" javascript="roomTypeManager">
<param name="beanName" value="roomTypeManager"/>
<include method="vidateEdit"/>
<include method="vidate"/>
</create>
</allow>
</dwr>
js中获得调用java类:
js首先引入dwr:
<script type='text/javascript' src='<=basePath>dwr/interface/newsCategoryManager.js'></script>
<script type='text/javascript' src='<%=basePath%>dwr/engine.js'></script>
<script type='text/javascript' src='<%=basePath%>dwr/util.js'></script>
然后: 调用
${category.name}',name,${hotel_id},为java类的参数 ; v 为 该类返回的值
newsCategoryManager.vidateEdit('${category.name}',name,${hotel_id},function(v){
if(v ==1){
alert("栏目名称已经重复!");
document.getElementById("title").focus();
}
});
java类为:public int vidateEdit(String oldName,String name, long hotel_id) {////}
dwr采用的是异步调用的形势:
如果想这样执行:
var val=‘’;
newsCategoryManager.vidateEdit('${category.name}',name,${hotel_id},function(v){
val =v;
});
这样赋值是不行的;
可以采用这样的:
var val=‘’;
DWREngine.setAsync(false);//先同步
newsCategoryManager.vidateEdit('${category.name}',name,${hotel_id},function(v){
val =v;
});
DWREngine.setAsync(true);
或者直接定义同步:
var val=‘’;
roomTypeManager.vidateEdit('${roomType.name}',name,${hotel_Id}, {
callback : function(retValue) {
val=retValue;
},
async : false
});