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="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;

  }

  好了已经完成了。