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; }
好了已经完成了。