`
306781704
  • 浏览: 87010 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

ajax+struts级联无需数据库,绝对可以看到效果的例子

    博客分类:
  • js
阅读更多
jsp文件
<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
	<html:base />

	<title>cascade.jsp</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>
   <script language="javascript"  type ="text/javascript"> 
        var  xmlHttp; 
       var tempSel;
        function  createXMLHttpRequest() { 
            if  (window.ActiveXObject) { 
                xmlHttp=new  ActiveXObject("Microsoft.XMLHTTP"); 
           } else   if (window.XMLHttpRequest) { 
                xmlHttp=new  XMLHttpRequest(); 
           } 
       } 
       
       // 返回信息处理,二级机构下拉列表返回结果 
       function  callback2() { 
          if(xmlHttp.readyState==4 ){ 
            if(xmlHttp.status==200 ){ 
                var  xmlDoc=xmlHttp.responseXML; 
               changeSel('2',xmlDoc); 
           } else { 
                 window.alert("您所请求的页面有异常。"); 
           } 
         }           
      } 
      
        function  selectChangeListener(orgLevel,orgId){ 
         createXMLHttpRequest(); 
         var  url="cascade.do?method=getOrganinfo_ajax&orgLevel="+orgLevel+"&orgId="+orgId; 
         xmlHttp.open("get",url,true); 
          if (orgLevel=='2'){
              tempSel=document.getElementById("secOrganIdSel"); 
              xmlHttp.onreadystatechange=callback2; 
         } 
         xmlHttp.send(null); 
      } 
      
       // 更新机构下拉列表 
       function  changeSel(orgLevel,xmlDoc){ 
            var  xsel=xmlDoc.documentElement.childNodes;
            	tempSel.options.length=0 ; 
                for (var i=0;i<xsel.length;i++) { 
                    var  xvalue=xsel[i].childNodes[0].firstChild.nodeValue; 
                    var  xtext=xsel[i].childNodes[1].firstChild.nodeValue; 
                    var  option=new  Option(xtext,xvalue); 
	                tempSel.add(option); 
	                } 
	   	 } 
   </script> 
<body>
	<form action="" name="form1">
		<select name="name" id="name"
			onchange=" selectChangeListener('2',this.options[this.selectedIndex].value); ">
			<option value="-1">
				请选择机构..
			</option>
			<option value="0">
				北京
			</option>
			<option value="1">
				湖南
			</option>
		</select>
		<select name="secOrganIdSel" id="secOrganIdSel">
			<option value="-1">
				请选择机构..
			</option>
		</select>

	</form>
</body>
</html:html>

action文件
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.xiaopeng.struts.action;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

/** 
 * MyEclipse Struts
 * Creation date: 02-20-2009
 * 
 * XDoclet definition:
 * @struts.action parameter="method" validate="true"
 */
public class CascadeAction extends DispatchAction {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward getOrganinfo_ajax(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
//		String level2OrganId=request.getParameter("level2OrganId"); 
//        System.out.print(level2OrganId); 
        response.setContentType("text/xml;charset=UTF-8"); 
        response.setHeader("Cache-control","no-cache"); 
         try {  
            String orgLevel=request.getParameter("orgLevel"); 
            String orgId=  request.getParameter("orgId");
            StringBuffer sb = new StringBuffer(); 
            String str="<select><kkk><value>11111</value><text>北京</text></kkk>"; 
            String str2="<kkk><value>3333</value><text>上海</text></kkk></select>";
            sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
            if(orgId.equals("0")){
            	str="<select><kkk><value>11111</value><text>北京</text></kkk>"; 
            	str2="<kkk><value>2222</value><text>上海</text></kkk></select>";
            }else if(orgId.equals("1")){
            	str="<select><kkk><value>11111</value><text>天津</text></kkk><kkk><value>2222</value><text>四川</text></kkk>"; 
            	str2="<kkk><value>3333</value><text>广州</text></kkk></select>";
            }
            sb.append(str); 
            sb.append(str2);
            System.out.println(sb.toString());
            PrintWriter out=response.getWriter(); 
            out.write(sb.toString()); 
            out.flush(); 
             return   null ; 
        }   catch  (Exception e)  { 
             //  TODO 自动生成 catch 块 
            request.setAttribute("info","获取二级机构异常!"); 
            e.printStackTrace(); 
             return  mapping.getInputForward(); 
        } 

	}
}
分享到:
评论

相关推荐

    struts实现select级联

    在本示例中,我们将探讨如何在Struts2框架下实现这种功能,而无需连接到数据库。 首先,我们需要理解级联选择的基本概念。级联选择涉及到两个或多个select元素,它们之间的选项是依赖关系的。当用户在第一个select...

    一个基于Ext+Struts2+spring实现的级联分页示例程序源码例子

    "一个基于Ext+Struts2+Spring实现的级联分页示例程序源码例子"是一个很好的学习资源,它揭示了如何利用这三大框架来构建高效、灵活的Web应用。下面将详细解析这个项目的知识点。 首先,Ext是一个强大的JavaScript库...

    struts2+ajax+json四级联动

    Struts2、Ajax和JSON是Web开发中的关键技术,它们共同作用可以实现动态、实时的数据交互,提高用户体验。这里我们将深入探讨这些技术以及如何在实际应用中实现四级联动的效果。 首先,Struts2是一个基于MVC(Model-...

    Struts2+Hibernate写的下拉菜单级联两级分类

    Struts2提供了Ajax插件(struts2-convention-plugin和struts2-jquery-plugin)来支持异步请求,使得页面无需刷新即可完成数据更新。 6. **错误处理与优化**:在实际开发中,还需要考虑错误处理,如网络异常、数据库...

    jquery,ajax的几个小例子

    这些例子可能包括了级联选择和自动补全等交互效果,你可以直接运行这些示例,观察它们的工作原理。 总结,jQuery和Ajax的结合大大提高了Web应用的用户体验,使得网页能够在不刷新的情况下与服务器进行通信。通过...

    struts2 doubleselect标签的用法例子

    Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建可维护、可扩展的Java web应用程序。...通过深入理解并实践这个例子,开发者可以更好地掌握Struts2框架以及使用`doubleselect`标签处理动态数据的方法。

    Struts书录入管理

    Struts书录入管理是一个基于Struts...通过这个例子,我们可以深入理解Struts框架的工作原理,以及Struts标签如何简化JSP页面的编写,实现动态、交互式的用户界面。这对于提升Web应用的用户体验和开发效率具有重要意义。

    ssh+json+dtree+mysql实现N级动态树形菜单+增删改查

    项目中的"DTree动态树形菜单(完整项目例子)内含数据库设计截图rar"文件提供了数据库设计的可视化表示,帮助理解数据结构。而"spring+struts2+hibernate+json+dtree+mysql实现的无限级联树"则是整个系统的代码实现...

    DWR实现省市县三级联动小例子

    这通常涉及数据库操作,例如查询SQL语句,获取级联的数据。可能使用的是Spring MVC或者Struts等框架来处理HTTP请求并返回JSON或XML数据。 3. **JavaScript前端**:在前端,DWR提供了API来异步调用后端服务。当用户...

    纯JSP+DWR实现三级联动下拉选择菜单实现技巧

    在这个例子中,DWR的这一特性使得实现三级联动变得简单而高效,无需依赖如Struts或Hibernate这样的大型框架。 在JSP页面中,使用JSTL (`&lt;c:forEach&gt;` 标签) 可以方便地遍历Java集合并将其转化为HTML选项。同时,...

Global site tag (gtag.js) - Google Analytics