第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

下拉框聯(lián)動(dòng)

標(biāo)簽:
Html/CSS JQuery

项目终于做完了。今天抽点时间对项目中遇到的问题进行下总结,我的模块中在页面要实现一个下拉框联动的功能。例如:你选“中国”时,联动的下拉框显示“北京,上海”;你选美国时,联动的下拉框显示“纽约,华盛顿”。实现这个功能,我采用的是AJAX的一个框架DWR.它是通过动态把java类生成javascript。感觉好像是在客户端调用一样。要使用DWR还需要一些准备工作。1.从网上下载dwr.jar放在项目的lib目录下。注意,还需要commons-logging.jar包,否则会报错说是日志包找不到。3,需要在web.xml中添加

<servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
  <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
</servlet>
 <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

另外还需要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>
  <create javascript="test" creator="new" scope="request">
   <param name="class" value="com.huan.tv.web.JiLian"></param>
  </create>
 </allow>
</dwr>

具体的参数意思,等我把项目跑起来在说啊,呵呵。到目前为止准备工作已告一段落,现在我就对实现联动功能做具体是代码实现。我写了一个JiLian.java来实现具体功能。

package com.huan.tv.web;

import java.util.TreeMap;
import java.util.Map;

/**
 * 本类是用DWR实现的一个联动类
 * @author guohusong
 *
 */
public  class JiLian {
 static Map countryMap = null;//countryMap封装了获取的国家列表
 static Map cityMap = null;//cityMap封装了获取的国家下的城市列表
 /**
  * 此方法在页面加载时候,把国家数据加载到选择国家的下拉框
  * 在实际开发中这些数据都是从数据库的静态表里读出来的,现在
  * 为了省时间,所以就把数据给写死了。
  * @return map
  */
 public static Map getCountryList(){
  countryMap = new TreeMap();
  countryMap.put("0", "--请选择--");
  countryMap.put("1", "中国");
  countryMap.put("2", "美国");
  return  countryMap;
 }

 /**
  * 此方法是根据选择的国家ID号来联动国家包括的城市列表
  * @param countryKey
  * @return Map
  */
 public static Map getCityList(String countryKey){
  
  cityMap = new TreeMap();
  if("1".equals(countryKey.trim())){//如果选择的是中国
   
   cityMap.put("0", "--请选择--");
   cityMap.put("3", "北京");
   cityMap.put("4", "上海");
  }
  if("2".equals(countryKey.trim())){//如果选择的是美国
   
   cityMap.put("0", "--请选择--");
   cityMap.put("5", "纽约");
   cityMap.put("6", "华盛顿");
  }else{
   
   cityMap.put("0", "--请选择--");
  }
  return cityMap;
 }
}
 

可以看出JiLian.java就是一个普通的java类。那么DWR框架怎么识别它了?这就需要在dwr.xml中给她指定 <param name="class" value="com.huan.tv.web.JiLian"></param>
现在我们就可以对我们写的dwr进行测试了。在地址栏输http://localhost:8080/LianDong/dwr/ (LianDong是我的项目名)你会发现会 出现

Classes known to DWR:

  • test (com.huan.tv.web.JiLian)

test是我在dwr.xml中配置的javascript的值是用来与javascript交互的名称.点击进入你会发现里面有JiLian.java里的getCountryList()和getCityList(String countryKey)方法。现在就可以对联动的方法进行测试了,点击getCountryList()javascript就会把方法里面的值取出来。点击getCityList(“”)在“”里输入1,javascript就会把中国里的城市列出来。输入2,会把美国的城市显示出来。

方法测试通过后,下面就要在页面中调用JiLian.java里的方法。index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.huan.tv.web.JiLian" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>
  <head>
  <title>下拉框联动实例</title>

<!--引入DWR的JS-->
  <script type='text/javascript' src='/LianDong/dwr/interface/test.js'></script>
  <script type='text/javascript' src='/LianDong/dwr/engine.js'></script>
  <script type='text/javascript' src='/LianDong/dwr/util.js'></script>
  </head>
   <script type="text/javascript">
   function init(){//页面打开时加载国家列表
    test.getCountryList(callback);
   }

//Java从根本上讲是同步机制,然而AJAX却是异步的。所以你调用远程方法时,当数据已经从网络上返回的时候,你要提供有反调 (callback) 功能的DWR
   function callback(data)
   {
   //将从后台获取的国家列表添加到下拉框
    DWRUtil.removeAllOptions("country");
    DWRUtil.addOptions("country", data);
    changeCity();
   }
   function changeCity()//联动城市下拉框
   {
    test.getCityList(DWRUtil.getValue("country"),cityback)
 }
 function cityback(data)
 {
  DWRUtil.removeAllOptions("city");
     DWRUtil.addOptions("city", data);
   
 }
   </script>
  <body onload="init()">
   <form name="form1" method="post">
   <select id="country" onchange="changeCity()">
 
   </select>
   <select id="city">
  
   </select>
   </form>
 
  </body>
</html>
 

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消