整理了一下之前写的一写代码,之前写的DWR 实现下拉控件的2级联动
1. DWR 使用
DWR使用很简单下载dwr.jar包,配置WEB.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
看了WEB.XML 其实就是发布一个DWR实现的一个Servlet。
2.配置dwr.xml
其实DWR就是将后台的JAVA 代码暴露出一个JS。这样我们前台就直接可以操控后台代码了。JAVA 怎么转换成JS这个任务就交给DWR来完成我们就不用关心了
一个很简答的dwr.xml文件描述
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<!-- address -->
<create creator="new" javascript="test2">
<param name="class" value="ddd.test2"/>
</create>
</allow>
</dwr>
这里说明一下,create creator="new"是用Java的new关键字创造对象
creator属性
是必须的 - 它用来指定使用那种创造器。
默认情况下DWR1.1有8种创造器。它们是:
-
new
:
用Java的new关键字创造对象。
-
none
:
它不创建对象,看下面的原因。 (v1.1+)
-
scripted
:
通过BSF使用脚本语言创建对象,例如BeanShell或Groovy。
-
spring
:
通过Spring框架访问Bean。
-
jsf
:
使用JSF的Bean。 (v1.1+)
-
struts
:
使用Struts的FormBean。 (v1.1+)
-
pageflow
:
访问Beehive或Weblogic的PageFlo
javascript="test2" 是你需要将xx.jAVA 暴露出test2.js名称,后面调用时候引用这个JS
value=""是你的类路径
这样就暴露出 test2.java 成 Tetst2.js 了
3.验证DWR是否发布成功
启动TOMCAT 发布应用http://localhost:8083/dfdf/dwr/util.js,http://localhost:8083/dfdf/dwr/engine.js,
http://localhost:8083/dfdf/dwr/interface/test2.js
8083是我的TOMCAT 端口 dfdf是我的项目名称.在IE地址栏中分别输入上面三个连接地址。会显示出对应的代码
这个就说么你的DWR 发布成功
其中util.js 和engine.js 是DWR 默认生成的JS ,test2.js是我么之前部署dwr.xml 指定某一个JAVA 暴露出的JS
4.dwr 实现2级联动实现
编写测试JSP
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@page import="ddd.test" %>
<script type='text/javascript' src='/dfdf/dwr/engine.js'> </script>
<script type='text/javascript' src='/dfdf/dwr/util.js'> </script>
<script type='text/javascript' src='/dfdf/dwr/interface/test2.js'> </script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
<select name='onlineUser' onchange="update(this.selectedIndex)">
<option id ="online" value="">所有</option>
<% test S = new test();
List list =S.getlist();
for (int i=0;i<list.size();i++){
%>
<option value='<%=i %>'><%=list.get(i).toString() %></option>
<%} %>
</select>
<select id='onlineUser2'>
<option id ="online" value="">所有</option>
</select>
</body>
</html>
<script type="text/javascript">
<!--
//-->
function update(value){
test2.getlist(value, function(message) {
document.getElementById('onlineUser2').options.length=0;
for ( var i=0;i<message.length;i++){
var option = document.createElement("option");
option.value=i;
option.text=message[i];
document.getElementById('onlineUser2').options.add(option);
}
})
}
</script>
其中
<script type='text/javascript' src='/dfdf/dwr/engine.js'> </script>
<script type='text/javascript' src='/dfdf/dwr/util.js'> </script>
<script type='text/javascript' src='/dfdf/dwr/interface/test2.js'> </script>
这3端JS 要引入,才能使用DWR dfdf 是我的项目名称dwr/engine.js 和dwr/util.js 指定的相关路径
自定义的test2.js DWR默认会放在dwr/interface/ 目录结构中
后台代码test2.java
package ddd;
import java.util.ArrayList;
import java.util.List;
/**
* @author 周辉 E-mail:zhouhui@baoz.com.cn
* @version 创建时间:2008-8-28 下午09:12:17
* 类说明
*/
public class test2 {
public List getlist(String status){
List cityList = new ArrayList();
int status1 = Integer.parseInt(status);
switch(status1)
{
case 1:
cityList.add("合肥");
cityList.add("芜湖");
cityList.add("淮南");
break;
case 2:
cityList.add("南京");
cityList.add("苏州");
cityList.add("镇江");
break;
case 3:
cityList.add("普陀");
cityList.add("宝山");
cityList.add("黄埔");
break;
}
return cityList;
}
}
5 发布代码测试
将项目发布tomcat 就是可以实现了
IE 中运行http://localhost:8083/dfdf/MyJsp.jsp
显示效果
下来第一个COMBOX 右边第2个变动
相关的代码见附件
- 大小: 4.9 KB
- 大小: 3.8 KB
分享到:
相关推荐
dynamic.rar dwr实现两级联动dynamic.rar dwr实现两级联动dynamic.rar dwr实现两级联动dynamic.rar dwr实现两级联动
用ajax与dwr实现二级联动用ajax与dwr实现二级联动用ajax与dwr实现二级联动用ajax与dwr实现二级联动用ajax与dwr实现二级联动
dwr实现的四级联动 dwr实现的四级联动 dwr实现的四级联动
dwr实现的完整的二级下拉联动列表,里面有说明,源代码。
纯JSP+DWR实现三级联动下拉选择菜单 实现无刷新联动 DWR判断用户是否存在 ajax二级联动菜单 DWR操作数据库模拟实现Google搜索效果
ajax技术中利用dwr框架实现二级联动菜单,页面无刷新
我以一个三级联动下拉框的例子给大家演示dwr是如何实现的。我用到的技术有spring 2.0.5 ,dwr2.0.5,hibernate3.2.3.ga,struts1.2.9,主要涉及到dwr如何调用spring管理的业务方法,以及dwr如何处理返回的数据。
选择一个商品大类,然后为商品小类填充数据,选择小类后则商品品牌列表会自动填充数据 项目是由Struts2+spring2+hibernate3构架 Struts2自带的只有二级连动下拉菜单,而且效率较低
SSH+dwr实现三级级联动,从Ajava下载的,所以共享一下 由于CSDN上传限制,所以ssh的jar包让我给删掉了
选择一个商品大类,然后为商品小类填充数据,选择小类后则商品品牌列表会自动填充数据 项目是由Struts2+spring2+hibernate3构架 Struts2自带的只有二级连动下拉菜单,而且效率较低!
struts2+dwr实现省市县三级联动
ajax,spring,hibernate,dwr,实现二级联动
一个用DWR实现的三级联动的列表。希望大家都看一看学习一下!
今天我做了一个dwr+jsp做的例子:纯JSP+DWR实现三级联动下拉选择菜单,感兴趣的朋友可以参考下,或许本文对你有所帮助
NULL 博文链接:https://zyz.iteye.com/blog/1702669
ajax结合dwr实现联动标签,认真阅读文件包
dwr框架+struts+Hibrenate实现下拉菜单二级联动,有注释,应用方便
省市县三级联动的实现的详细代码与配置