ITPub博客

首页 > IT职业 > IT生活 > 转 转别人写的用dwr做联动菜单的例子,自己觉得也不错

转 转别人写的用dwr做联动菜单的例子,自己觉得也不错

原创 IT生活 作者:gyang 时间:2007-09-06 11:23:13 0 删除 编辑
最近在项目使用ajax来实现一个三级下拉菜单,同时在用户登录时也用到了ajax,在看同事写的ajax代码时发现他用到了dwr,所以今天抽空学习了一下dwr,写了两个小例子

1、点击“getToday”按钮,在文本框中显示今天的日期;点击“getYesterday”按钮,在文本框中显示昨天的日期。
首先下载dwr的jar文件,并把他放到你的WEB-INF/lib文件夹下;
然后在web.xml文件中加入以下代码:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

接着,在于web.xml同级目录下新建dwr.xml文件,并加入下面的代码:
[









新建页面,我这里使用的是freemarker,换做html和jsp也一样效果,代码如下:





function gettoday() {
Demo.getToday(setMytext);
}
function getYesterday() {
Demo.getYesterday(setMytext);
}
function setMytext(str) {
document.getElementById('mytext').value = str;
}









java文件GetData.java代码如下:
package com.dwrtest.java;

import java.text.SimpleDateFormat;
import java.util.Date;

public class GetDate {

public String getToday() {
SimpleDateFormat bartDateFormat = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
Date date = new Date();
return bartDateFormat.format(date);
}

public String getYesterday() {
SimpleDateFormat bartDateFormat = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
Date date = new Date();
return bartDateFormat.format(new Date(date.getTime() - 86400000));
}
}

这样编译以后,启动tomcat就可以看到效果了。
这里的java文件和dwr基本没有什么联系,它的两个方法也不是专门为dwr而写的,显而易见,这两个方法的目的是格式化当天和前一天的时间,并返回他们的String形式。
而在dwr.xml中,我们这样引入了他们,


这样在javascript中直接使用“Demo”了。我们可以看到,在页面的js中这样引入了Demo,在gettoday()和getYesterday()中,调用了Demo.getToday(setMytext),意思是将return的值作为setMytext的参数传到setMytext()中。2、二级的联动菜单,三级、四级都也可以这样做页面代码:






function updateClass() {
ListTest.getClassList(createClass);
}
function createClass(data) {
DWRUtil.removeAllOptions("classid");
DWRUtil.addOptions("classid", data);
}
function updateUser() {
ListTest.getUserList(DWRUtil.getValue("classid"),createUser);
}
function createUser(data) {
DWRUtil.removeAllOptions("userid");
DWRUtil.addOptions("userid", data);
}




Class:

User:


可以看到,引入了
java文件ListTest.java的代码:package com.dwrtest.java;

import java.util.LinkedHashMap;
import java.util.Map;

public class ListTest {

public Map getClassList() {
Map map = new LinkedHashMap();
map.put("0", "请选择");
map.put("1", "班级一");
map.put("2", "班级二");
map.put("3", "班级三");
return map;
}

public Map getUserList(String id) {
Map map = new LinkedHashMap();
if(id.equals("1")) {
map.put("1", "同学一");
map.put("2", "同学二");
map.put("3", "同学三");
} else if(id.equals("2")) {
map.put("4", "同学四");
map.put("5", "同学五");
map.put("6", "同学六");
} else if(id.equals("3")) {
map.put("7", "同学七");
map.put("8", "同学八");
map.put("9", "同学九");
} else {
map.put("", "请选择");
}
return map;
}
}

最后在dwr.xml中添加下面代码:



这样,二级的联动就做好了。
[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15247/viewspace-968209/,如需转载,请注明出处,否则将追究法律责任。

下一篇: dwr的一些使用
请登录后发表评论 登录
全部评论

注册时间:2012-09-18

  • 博文量
    32
  • 访问量
    88904