程序中遇到重點問題


  修改過程中學習到了<s:select>中用struts2標簽顯示的必須是對象型,即是使用hql查詢出來的List符合。Jsp如下

<s:select style="width:140px;height:20px;" list="jcSbpcList" headerKey="" headerValue="" listKey="sbpc" listValue="sbpc" name="ztbModel.sbpc" theme="simple" ></s:select>

或者使用Sql查詢出來的List進行轉換:

List list = proxyService.getBasicdataService().getCxZndmList();  
  for(int i=0;i<list.size();i++){  
   Map map=new HashMap();
   Object[] objs = (Object[]) list.get(i); 
   map.put("zndm", objs[2].toString()+"-"+objs[0].toString());
   map.put("znmc", objs[2].toString()+"-"+objs[1].toString());   
   this.cxZndmList.add(map);
  }

但是這種情況如果查詢出來的List就一條數據會報出錯:

java.lang.String cannot be cast to [Ljava.lang.Object;

出錯的原因:Sql語句執行的查詢結果只有一列時就會出現該問題,當有多個列時用數組去沒有問題,如果只有一列會默認為String或者其他類型!

所以最終選擇頁面通過iterator循環來顯示sql查詢出來的List,注在此沒有#

<select id="sbpct" name="ztbModel.sbpc"  style="width:140px;height:20px;">
               <option></option>
               <s:iterator value="jcSbpcList" id="jcSbpcList">
               <option value="<s:property value="jcSbpcList[0]"/>"><s:property value="jcSbpcList[0]"/></option>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM