Jquery+Struts的<selected>二级联动
来源:互联网 发布:网络机柜安装规范 编辑:程序博客网 时间:2024/06/05 03:55
1.问题分析
多级select联动是网页选取多级项目必要的应用方法,一般情况下都是由一级select的选择项动态异步的修改二级select的option内容。为了方便添加内容与后台数据一致性,一般很少采用如博客点击打开链接中所展示的静态标签联动形式。
2.解决策略
整个联动流程如图所示:
1.监听一级select的change事件,并获得用于修改二级select的关键属性
2.在change事件中通过ajax向struts后台发送数据请求,并返回Json形式的数据
3.在ajax的success回调中向二级select添加需要的内容
3.代码说明
web端实现代码(负责一级select的change事件监听与二级select的数据请求、option添加)
$("#Devicetype").change(function(){ var customUrl = "TruevalueInspectionQuery!execute"+$("#Devicetype").val()+"Inspection.action"; $.ajax({url : customUrl,此处的通过ActionName!methodName.action的url形式调用自定义action执行方法,减少后台执行数据查询的action个数type : "post",dataType : "text",success : function(data) { obj= $.parseJSON(data)//若返回的是json类型数据而不执行此句,会报"Type error invalid 'in' opreand a"的错误 $("#Inspection option").remove();//<span style="font-family: Arial, Helvetica, sans-serif;">Inspection </span><span style="font-family: Arial, Helvetica, sans-serif;">为要绑定的select,先清除数据 </span> $.each(obj, function (i,item) //Jquery中第一个参数i为索引,第二个参数才是从obj中解析的item,因此第一个参数在回调时不可省略不写 { $("#Inspection").append("<option value=" + item.tag + ">" + item.name + "</option>");//tag与name为回传jsonobject的属性值 }); },error : function() {alert("网络异常请稍后再试...")}});//end ajax});//end change
后台action方法(负责数据请求和Json化回传)
/** * 用于返回检定项目的检定项的action * <p>该action无默认excute方法,在使用时需要指定具体执行的自定义方法 * @author cyoubo */public class Ac_TruevalueInspectionQuery extends ActionSupport{private static final long serialVersionUID = 7545375058031908844L;//定义要返回的Json结果,json话过程交由Strut框架自行完成List<InspectionItem> resultJson;//getter与setterpublic List<InspectionItem> getResultJson(){return resultJson;}public void setResultJson(List<InspectionItem> resultJson){this.resultJson = resultJson;}//延迟构造,避免数据冲突public void prepareresultJson(){if(resultJson==null)resultJson=new ArrayList<InspectionItem>();resultJson.clear();}public String executeHDMIInspection(){prepareresultJson();resultJson.add(new InspectionItem("Consitency", "一致性", ""));return SUCCESS;}public String executeEDMIInspection(){prepareresultJson();resultJson.add(new InspectionItem("Consisten", "一致性", ""));resultJson.add(new InspectionItem("Spotposition", "光相位", ""));return SUCCESS;}}注意在strut.xml配置文件中,将该action配置为返回json的action
<package name="JsonPackage" extends="json-default"><action name="Truevaluescan" class="com.dr.truevalue.action.Ac_<span style="font-family: Arial, Helvetica, sans-serif;">Ac_TruevalueInspectionQuery</span><span style="font-family: Arial, Helvetica, sans-serif;">"></span><span style="white-space:pre"></span><result type="json"><!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 --><param name="root">resultJson</param></result></action></package>
0 0
- Jquery+Struts的<selected>二级联动
- jQuery省市的二级联动
- jquery实现菜单的二级联动
- Jquery实现多行的二级联动
- jquery的ajax实现二级联动
- 一个jQuery二级联动的例子
- 基于jquery的二级联动菜单
- jQuery 关于城市的二级联动
- JQuery实现的二级联动菜单
- jquery 二级城市联动
- jQuery二级联动
- jQuery 二级联动
- jquery二级联动
- jquery 二级联动演示
- jquery 二级城市联动
- jquery+dwr二级联动
- jquery二级联动
- jquery 二级联动
- 设计模式——模板模式
- java--时间字符串类型转换为可存入数据库时间类型的方法
- UIDatePicker
- PDFLib (8.0.2)中文路径处理使用UTF8
- 克隆-浅表副本与深层副本
- Jquery+Struts的<selected>二级联动
- AngularJS digest循环
- 使用LoadRunner11做性能测试过程中遇到的部分问题
- PMP-gossip-03
- dede开发--修改文档简介字数
- Kotlin使用(一)
- 【机器学习】支持向量机(一)——最大间隔法与核函数
- 任意代码执行
- 【HDU】-1551-Cable master(二分)