1.此代码适合所有下拉列表取值

2.一个项目所有的下拉列表只需要这一个公用方法;

步骤一:创建实体bean;

public class DictionaryBean {
    private String value_Id;//下拉框option的id
    private String value;//下拉框option的值
    private String flag;//对应下拉框的值的类型,如flag=1,下拉列表为省份信息,flag=2为市级信息等;
    public String getValue_Id() {
        return value_Id;
    }
    public void setValue_Id(String valueId) {
        value_Id = valueId;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
        public String getFlag() {
        return flag;
    }
    public void setFlag(String flag) {
        this.flag = flag;
    }
    
}

步骤二 在你action里面写个如下取listbean的方法,listbean封装的是 bean.valueId 和bean.value;

    /**
     * 
     * @author ZhuangZi
     * @class com.hzdracom.action.DictionaryAction
     * @method listDictionary
     * @Directions  获取下拉列表信息公用方法
     * @date 2013-3-21上午10:08:39 void
     */
    public void listDictionary(){
        String json="";
        try{
            listDictionary = dictionaryService.handleListDictionary(bean);
            json=JSON.toJSONString(listDictionary);//转换成json字符串
            HttpServletResponse response=ServletActionContext.getResponse();   
             response.setContentType("text/html");  
             response.setCharacterEncoding("utf-8");
             PrintWriter out;   
             out = response.getWriter(); 
             out.println(json);
             out.flush();   
             out.close(); 
        }catch(Exception e){
            e.printstacktrace();
        }
    }
sturts.xml 配置信息
<action name="listDictionary" method ="listDictionary" class="com.hzdracom.action.DictionaryAction">
 </action>


步骤三 封装公用js代码js文件名字 dictionary.js

/**
 *↓↓↓↓↓↓↓↓↓↓
 *作者:ZhuangZi
 *类名:公用方法初始化
 *功能:公用方法初始化
 *详细:公用方法初始化
 *版本:1.0
 *日期:2013-03-22
 *说明:
 *↑↑↑↑↑↑↑↑↑↑
 */
$(function(){

/*1.下拉框取值↓↓↓*/
	selectBox([
		      {id_:"#down_type",id:"#downtype",flag:"2"},{id_:"#kuai_flag",id:"#kuaiflag",flag:"3"}]);
	//selectBox{[{id_:"你的下拉框的被选中值的ID",id:"下拉框的ID",flag:"下拉框值的类型"}]};	
         //有一个{id_:"#kuai_flag",flag:"3"}这种对象就有一个下拉框信息;
}); 



/**
 *↓↓↓↓↓↓↓↓↓↓
 *作者:ZhuangZi
 *类名:获取下拉框值公用方法
 *功能:下拉列表取值
 *详细:加载下拉列表
 *版本:1.0
 *日期:2013-03-22
 *说明:如果新加一个下拉框 需要给数组list添加一个对象
 *参数:id_:下拉框被选中值的ID;id:下拉框ID;flag:下拉框值的类型,即显示内容类型
 *↑↑↑↑↑↑↑↑↑↑
 */
function selectBox(list){
	for ( var i = 0,len = list.length; i < len; i++) {
		(function(bean){
			var pageId=$(bean.id_).val();
			$.ajax({
		 			type:'post',url:'../dictionary/listDictionary.do',data:'bean.flag='+bean.flag,dataType:'json',success:function(json){
		 					for(var i=0; i< json.length;i++){
		 						$(bean.id).append("<option value='"
									+json[i].value_Id+"'>"
		 							+json[i].value+"</option>");
		 							if(pageId !=null && pageId!="" && pageId==json[i].value_Id){
		 							
		 								$(bean.id).find("option").attr("selected",true);
		 							}
					            }
		 			},error:function(){      
				       alert('error');      
				    }
		 		});
		})(list[i]);
	}
}


步骤四 页面信息 下面隐藏域信息 ,就是你选某项查询后,它就会被选中的值

引入js

<script language="javascript1.2" src="<s:url value="/js/jquery.js" includeParams="false"/>"></script>
<script language="javascript1.2" src="<s:url value="/js/dictionary.js" includeParams="false"/>"></script>

<s:hidden id="down_type" name="yhaoPortalsDownBean.downType"/>
<td width="25%" height="33" class="addtabletd1">下载类型标识:</td>
<td width="25%" height="33" class="addtabletd2">
   <select  id="downtype" name="yhaoPortalsDownBean.downType" class="textfrom" class="width:120" >
     <option value="">---所有---</option>
   </select>
</td>


步骤五 附加信息 dao里面方法 下面方法用到的flag 就是js里面flag传的值

public List<DictionaryBean> handleListDictionary(DictionaryBean bean)throws DataAccessException,Exception {
        List<DictionaryBean> list = new ArrayList<DictionaryBean>();
        try{
            String sql="";
            /* 获取页面下拉列表*/
            if (bean.getFlag().equals("1")) {
                sql = "SELECT PAGE_FLAG VALUE_ID,PAGE_NAME VALUE FROM YHAO_PORTALS_PAGE";
            }
            /* 获取下载类型标识下拉列表*/
            if (bean.getFlag().equals("2")) {
                sql = " SELECT DOWNTYPE_FLAG VALUE_ID,DOWNTYPE_NAME VALUE FROM YHAO_PORTALS_DOWNTYPE ";
            }
            /* 获取块标识下拉列表*/
            if (bean.getFlag().equals("3")) {
                sql = " SELECT KUAI_FLAG VALUE_ID,KUAI_NAME VALUE FROM YHAO_PORTALS_KUAI ";
            }
            list = this.query(sql,new DictionaryList());
        }catch(Exception e){
            e.printstacktrace();
        }
        return list;
    }


好了已经完成了。

ajax struts2 下拉框赋值 公用方法 深一度封装的更多相关文章

  1. HTML5、Select下拉框右边加图标的实现代码(增进用户体验)

    这篇文章主要介绍了HTML5、Select下拉框右边加图标的实现代码,深度美化页面增进用户体验效果,需要的朋友可以参考下

  2. 关于h5中的fetch方法解读(小结)

    这篇文章主要介绍了关于h5中的fetch方法解读(小结),fetch身为H5中的一个新对象,他的诞生,是为了取代ajax的存在而出现,有兴趣的可以了解一下

  3. ios – 使用NSURLSession获取JSON数据

    我试图从谷歌距离api使用NSURLSession获取数据,但如下所示,当我打印响应和数据时,我得到的结果为NULL.可能是什么问题?

  4. ios – 错误域= com.alamofire.error.serialization.response代码= -1011“请求失败:禁止

    任何人都可以帮我解决以下错误–>在AFNetworking2.5中使用“删除”方法时出错解决方法我发现,如果我的手机时钟不同步……它不允许我更新…也许检查你的手机设置到正确的时间“自动区”,看看是否有效…

  5. iOS网页/原生应用Facebook登录弹出 – 失败?

    如果我重新启动app/web-app,用户将自动登录,并重定向到成功页面.我认为是导致问题的原因当您在Firefox/Chrome/Safari浏览器中运行网页时,Facebook登录对话框会弹出一个弹出窗口或另一个选项卡.我相信这是这个弹出页面的一个问题,以及当成功登录时Javascript如何与自身通信.window.close的东西没有返回的根页面…失败的解决方法由于应用程序挂在前面提到的URL上,我决定在shouldStartLoadWithRequest(…)中添加if语句以强制UIWebvie

  6. ios – Watchkit新会话不起作用

    我的手表扩展中有两个视图控制器.每当我打电话时我只得到第一个视图控制器的响应,并在第二个viewcontroller中得到错误WCSession在app和watch扩展中启动.任何建议?

  7. 使用Firebase iOS Swift将特定设备的通知推送到特定设备

    我非常感谢PushNotifications的帮助.我的应用聊天,用户可以直接向对方发送短信.但是如果没有PushNotifications,它就没有多大意义.它全部设置在Firebase上.如何将推送通知从特定设备发送到特定设备?

  8. ios – 保存从查询中获取的用户的属性(即不在currentUser上)

    我有兴趣根据currentUser执行的操作将属性保存到数据库中的用户.基于以下代码,我收到错误消息“除非已通过logIn或signUp验证用户,否则无法保存用户”我想知道是否有一个解决方法,我可以将属性保存到foundUser,而无需登录该用户.谢谢你的帮助!解决方法如果要更新当前不是登录用户的用户,则需要使用主密钥调用Parse.您可以从CloudCode执行此操作;并从您的iOS项目中调用它;

  9. 在iOS中使用NSJSONSerialization进行JSON解析

    解决方法首先在您的JSON响应字典中,在“RESPONSE”键下,您有一个数组而不是字典,该数组包含字典对象.所以要提取用户名和电子邮件ID,如下所示

  10. Xcode:Alamofire获得String响应

    我是IOS开发的新手,目前正在与Alamofire学习网络我正在尝试登录…每当凭证正确时,.PHP文件返回一个json,我可以通过以下代码从Alamofire获取json:现在……当凭证错误时,.PHP不会给json..而且它返回一个字符串..例如“wrong_password”或“userLocked”等等……如何通过Alamofire获得String响应?解决方法如果您希望JSON响应使用.responseJSON,如果您想要String响应,请使用.responseString.如果你想两者同时使用

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部