日期:2014-05-16  浏览次数:20596 次

ajax struts2 下拉框赋值 公用方法 深一度封装

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",id:"#kuaiflag" ,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="javascrip