2007-01-11 周四 DWR学习第二天
这个东西他妈的就是好用,以前写的用联动,满天飞DOM,用这个东西,短短几行就搞定,看来AJAX满天飞的日子不远了
自己写了一个联动Select的例子
dwr.xml 如下
xml 代码
- < allow >
- < convert converter = "bean" match = "ajax.dwr.linkageSelect.Select" />
- < create creator = "new" javascript = "LinkageSelectAction" >
- < param name = "class" value = "ajax.dwr.linkageSelect.LinkageSelectAction" />
- < include method = "findProvinces" />
- create >
- allow >
java代码如下:
java 代码
- package ajax.dwr.linkageSelect;
- public class Select {
- private String key; // 键
- private String value; // 值
- private String nation;
- public String getNation() {
- return nation;
- }
- public void setNation(String nation) {
- this .nation = nation;
- }
- public String getKey() {
- return key;
- }
- public void setKey(String key) {
- this .key = key;
- }
- public String getValue() {
- return value;
- }
- public void setValue(String value) {
- this .value = value;
- }
- }
java 代码
- package ajax.dwr.linkageSelect;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- public class LinkageSelectAction {
- public Map findProvinces(String nation) {
- Map result = new HashMap();
- List list = initData();
- Select bean;
- for ( int i = 0 ; i < list.size(); i++) {
- bean = (Select) list.get(i);
- if (bean.getNation().equals(nation)) {
- result.put(bean.getKey(),bean.getValue());
- }
- }
- return result;
- }
- private List initData() {
- List list = new ArrayList();
- Select bean = new Select();
- bean.setNation( "1" );
- bean.setKey( "1" );
- bean.setValue( "北京" );
- list.add(bean);
- bean = new Select();
- bean.setNation( "1" );
- bean.setKey( "2" );
- bean.setValue( "天津" );
- list.add(bean);
- bean = new Select();
- bean.setNation( "1" );
- bean.setKey( "3" );
- bean.setValue( "山西" );
- list.add(bean);
- bean = new Select();
- bean.setNation( "2" );
- bean.setKey( "4" );
- bean.setValue( "Tokyo" );
- list.add(bean);
- bean = new Select();
- bean.setNation( "2" );
- bean.setKey( "5" );
- bean.setValue( "Kokyo" );
- list.add(bean);
- bean = new Select();
- bean.setNation( "2" );
- bean.setKey( "6" );
- bean.setValue( "Osaka" );
- list.add(bean);
- bean = new Select();
- bean.setNation( "3" );
- bean.setKey( "7" );
- bean.setValue( "California" );
- list.add(bean);
- bean = new Select();
- bean.setNation( "3" );
- bean.setKey( "8" );
- bean.setValue( "Tennessee" );
- list.add(bean);
- return list;
- }
- }
js 代码
- <script language=< span="">"javaScript" src= "<%=request.getContextPath()%>/dwr/interface/LinkageSelectAction.js" ></script>
- <script type='text javascript' src="/dwr/engine.js"></script>
- <script type='text javascript' src="/dwr/util.js"></script>
- <script>
- var key = function (unit) { return unit.key };
- var value = function (unit) { return unit.value };
- var nation = function (unit) { return unit.nation };
- function linkage() {
- var nation = document.getElementById( "nation" ).value;
- LinkageSelectAction.findProvinces(nation,loadProvince);
- }
- function loadProvince(provinceItems)
- {
- DWRUtil.removeAllOptions( "province" );
- DWRUtil.addOptions( "province" , provinceItems);
- }
- </script>