posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          extremecomponents 初使用

          Posted on 2007-04-24 15:51 G_G 閱讀(1047) 評論(0)  編輯  收藏 所屬分類: ReportformJspTag
          <? xml?version="1.0"?encoding="UTF-8" ?>

          <! DOCTYPE?web-app?PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"?"http://java.sun.com/dtd/web-app_2_3.dtd" >
          < web-app >

          ????
          < taglib >
          ????????
          < taglib-uri > http://www.extremecomponents.org </ taglib-uri >
          ????????
          < taglib-location > /WEB-INF/extremecomponents.tld </ taglib-location >
          ????
          </ taglib >
          ????
          </ web-app >

          <% @?taglib?prefix = " ec " ?uri = " /WEB-INF/extremecomponents.tld " ? %>

          <% @?taglib?prefix = " c " ?uri = " /WEB-INF/c.tld " ? %>

          <% @?page?language = " java " ?import = " java.util.* " ?pageEncoding = " UTF-8 " %>
          <%
          String ?path? = ?request.getContextPath();
          String ?basePath? = ?request.getScheme() + " :// " + request.getServerName() + " : " + request.getServerPort() + path + " / " ;
          %>

          <! DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN" >
          < html >
          ??
          < head >
          ????
          < base? href ="<%=basePath%>" >
          ????
          ????
          < title > My?JSP?'MyJsp.jsp'?starting?page </ title >
          ????
          ????
          < meta? http-equiv ="pragma" ?content ="no-cache" >
          ????
          < meta? http-equiv ="cache-control" ?content ="no-cache" >
          ????
          < meta? http-equiv ="expires" ?content ="0" >
          ????
          < meta? http-equiv ="keywords" ?content ="keyword1,keyword2,keyword3" >
          ????
          < meta? http-equiv ="description" ?content ="This?is?my?page" >
          ????
          ????????
          < link? rel ="stylesheet" ?type ="text/css" ?href ="<c:url?value=" /extremecomponents.css" /> ">
          ????
          ??
          </ head >
          ??
          ??
          < body >


          ????????????
          <%
          ????????????????List?goodss?
          = ? new ?ArrayList();
          ????????????????
          for ?( int ?i? = ? 1 ;?i? <= ? 10 ;?i ++ )
          ????????????????{
          ????????????????????Map?goods?
          = ? new ?java.util.HashMap();
          ????????????????????goods.put(
          " code " ,? " A00 " + i);
          ????????????????????goods.put(
          " name " ,? " 面包 " + i);
          ????????????????????goods.put(
          " status " ,? " A:valid " );
          ????????????????????goods.put(
          " born " ,? new ? Date ());
          ????????????????????goodss.add(goods);
          ????????????????}
          ????????????????request.setAttribute(
          " goodss " ,?goodss);
          ????????????
          %>
          ????????????
          ????????????
          < ec:table??
          ????????????
          action ="${pageContext.request.contextPath}/test.jsp"
          ????????????items
          ="goodss"
          ????????????cellpadding
          ="1"
          ????????????title
          ="my?bread" >
          ????????????
          < ec:row ></ ec:row >
          ????????????????
          < ec:column? property ="code" />
          ????????????????
          < ec:column? property ="name" />
          ????????????????
          < ec:column? property ="status" />
          ????????????????
          < ec:column? property ="born" ?cell ="date" ?format ="yyyy-MM-dd" />
          ????????????
          </ ec:table >

          ??
          </ body >
          </ html >

          {轉}


          關鍵字: ? java,eXtremeComponents????

          在我開發的一個通用查詢項目中想把查詢結果集的顯示部分采用eXtremeComponents組件來處理,但是碰到個問題,就是組件預先并不知道查詢結果的列名,也就是必須解決Column列的動態顯示問題。

          有一種方法就是通過在jsp頁面里羅列一下,但是總感覺不舒服,查文檔發現eXtremeComponents有一接口AutoGenerateColumns可實現此功能,以下為具體實現步驟:

          一、在應用的servlet(或struts action等)里(如sqlAction.do)實現根據SQL語句的運行結果獲取字段名稱列表(fieldnames)和查詢結果集(results)并將其放入httpRequest的屬性中

          代碼
          1. List?fieldnames?=?實現[獲取字段名稱列表]方法;??
          2. List?results?=?實現[獲取查詢結果集]方法;??
          3. httpRequest.setAttribute("fieldnames",?fieldnames);??
          4. httpRequest.setAttribute("results",?results);??

          results將作為eXtremeTable組件中屬性items的值,fieldnames將用來迭代構造Column對象

          二、編寫類AutoGenerateColumnsImpl實現org.extremecomponents.table.core.AutoGenerateColumns接口

          代碼
          1. package?org.boogie.sql.common.ec;??
          2. ??
          3. import?java.util.Iterator;??
          4. import?java.util.List;??
          5. ??
          6. import?org.extremecomponents.table.bean.Column;??
          7. import?org.extremecomponents.table.core.AutoGenerateColumns;??
          8. import?org.extremecomponents.table.core.TableModel;??
          9. ??
          10. public?class?AutoGenerateColumnsImpl?implements?AutoGenerateColumns?{??
          11. ??
          12. ????public?void?addColumns(TableModel?model)?{??
          13. ????????List?fieldnames?=?(List)?model.getContext().getRequestAttribute(??
          14. ????????????????"fieldnames");??
          15. ????????Iterator?iterator?=?fieldnames.iterator();??
          16. ????????while?(iterator.hasNext())?{??
          17. ????????????String?fieldname?=?(String)?iterator.next();??
          18. ????????????Column?column?=?model.getColumnInstance();??
          19. ????????????column.setProperty(fieldname);??
          20. ????????????//?column.setCell((String)?columnToAdd.get(CELL));??
          21. ????????????model.getColumnHandler().addAutoGenerateColumn(column);??
          22. ????????}??
          23. ????}??
          24. }??

          AutoGenerateColumns接口只有一個方法addColumns供實現,在此方法中通過傳入的TableModel型參數 model可從其Context中獲取到httpRequest中的fieldnames屬性值,然后根據fieldnames列表迭代構造對應 Column后添加到model中

          三、在顯示頁文件的eXtremeTable中,配置TableTag的屬性items值為results,配置ColumnTag的屬性autoGenerateColumns值為類AutoGenerateColumnsImpl的全路徑

          代碼
          1. <ec:table???
          2. ????????items="results"??
          3. ????????var="result"??
          4. ????????action="${pageContext.request.contextPath}/sqlAction.do"??
          5. ????????imagePath="${pageContext.request.contextPath}/images/table/*.gif"??
          6. ????????title="查詢結果"??
          7. ????????width="100%"??
          8. ????????rowsDisplayed="5"??
          9. ????????>??
          10. ??<ec:parameter?name="method"?value="ec"/>??
          11. ??<ec:row>??
          12. ????<ec:columns?autoGenerateColumns="org.boogie.sql.common.ec.AutoGenerateColumnsImpl"/>??
          13. ??</ec:row>??
          14. </ec:table>

          小結******************************************************************************

          <%@?page?language="java"?pageEncoding="UTF-8"%>
          <%@?taglib?uri="http://jakarta.apache.org/struts/tags-bean"?prefix="bean"%>?
          <%@?taglib?uri="http://jakarta.apache.org/struts/tags-html"?prefix="html"%>
          <%@?taglib?uri="http://jakarta.apache.org/struts/tags-logic"?prefix="logic"%>
          <%@?taglib?uri="http://www.extremecomponents.org"?prefix="ec"?%>?

          <%@?taglib?uri="http://struts.apache.org/tags-tiles"?prefix="tiles"?%>
          <%@?taglib?uri="http://www.jjm.cn/tags-security"?prefix="jjmtag"%>
          ?

          <html>?
          ????
          <head>
          ????????
          <LINK?href="<%=request.getContextPath()%>/css/extremetable.css"?rel="stylesheet"?type="text/css">
          ????????
          <script?language="JavaScript"?src="<%=request.getContextPath()%>/res_others/calendar/calendar.js?">?</script>???? //時間 的 js 插件

          ????????
          <LINK?rel="StyleSheet"?type="text/css"?href="<%=request.getContextPath()%>/css/jjmStyle.css">??????
          ????
          </head>

          ????
          <body>
          ????
          <CENTER>

          ????
          <TABLE?border="1"?class="borderLessTable"?width=100%>
          ????????
          <html:form?action="/tAT.do">
          ????????????????
          <TR>
          ????????????????????
          <TD?class="tdQueryCaption13">
          ????????????????????????
          <CENTER>?時間范圍:</CENTER>
          ????????????????????
          </TD>
          ????????????????????
          <TD?class="tdQueryCaption13">
          ????????????????????
          <CENTER>
          ????????????????????????
          <html:text?property="time"?size="8"?readonly="true"/>?????????????????????//作為 時間 的 javascript 插件
          ????????????????????????????
          <img?alt="彈出日歷下拉菜單"?height="16"?width="16"?align="middle"?
          ????????????????????????????????????src
          ="<%=request.getContextPath()%>/res_others/calendar/img/cal.gif"?
          ????????????????????????????????????style
          ="cursor:hand;"?
          ????????????????????????????????????onclick
          ="fPopUpCalendarDlg(time);return?false"/>
          ????????????????????
          </CENTER>????????????????????????????
          ????????????????????
          </TD>
          ????????????????????
          <tD>
          ????????????????????????
          <CENTER><html:image?src="/rlzy/images/edit/chaxun.gif"></html:image></CENTER>
          ????????????????????
          </tD>
          ????????????????????
          ????????????
          </html:form>
          ????
          </TABLE>
          ????
          </CENTER>
          ????
          ????????
          <ec:table??
          ????????????????
          items?="list"
          ????????????????imagePath
          ="${pageContext.request.contextPath}/images/ectable/*.gif"
          ????????????????cellpadding?
          ="1">
          ?????????????
          <ec:row></ec:row>
          ?????????????
          ????????????????
          <ec:column???property?="入段&調離"?/>
          ?????????????
          ????????????????
          <ec:column??cell="com.jjm.extremesite.cell.CorpNameCell"?property="段號"/>???//?? (1)?? 標簽的重寫

          ????????????????
          ????????????????
          <ec:column??cell="com.jjm.extremesite.cell.CorpNameCell"?property="車間"?/>
          ?????????????????
          ????????????????
          <ec:column??property="姓名"?/>
          ?????????????????
          ?????????????????
          <ec:column???property="入段時間"?cell="date"?format="yyyy-MM-dd"??/>???//時間 的表示 cell="date"?format="yyyy-MM-dd"??
          ?????????????????
          ????????????????
          <ec:column???property="調離時間"?cell="date"?format="yyyy-MM-dd"/>
          ?????????????????
          ?????????????
          </ec:table?>

          ????
          </body>
          </html>

          package?com.jjm.extremesite.cell;

          import?org.extremecomponents.table.bean.Column;
          import?org.extremecomponents.table.cell.AbstractCell;
          import?org.extremecomponents.table.core.TableModel;

          import?com.jjm.bj.dao.CorpBean;
          import?com.jjm.bj.dao.CorpDao;

          public?class?CorpNameCell?extends?AbstractCell?{

          ????
          public?void?destroy()?{

          ????}


          ????
          /**
          ?????*?
          @param?args
          ?????
          */

          ????
          public?static?void?main(String[]?args)?{

          ????}

          ????
          ????
          private?String?getCorpName(String?id){
          ????????
          if?(id!=null?&&?id.length()>0){
          ????????????CorpBean?obj?
          =null;
          ????????????obj
          =CorpDao.findByID(id);
          ????????????
          if?(obj!=null){
          ????????????????
          return?obj.getCorpName();
          ????????????}
          ????????????
          ????????}
          ????
          ????????
          return?"";
          ????}


          ????
          protected?String?getCellValue(TableModel?tableModel,?Column?column)?{
          ????????CorpNameCell?corpName
          =new?CorpNameCell();
          ????????
          return?corpName.getCorpName(column.getValueAsString());
          ????}


          }


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 高雄县| 香格里拉县| 淮阳县| 辰溪县| 闽清县| 荆门市| 秦安县| 黄平县| 绥阳县| 珠海市| 高淳县| 定边县| 咸宁市| 山西省| 双辽市| 荥经县| 盱眙县| 丁青县| 临清市| 肃南| 井冈山市| 阿合奇县| 白城市| 内黄县| 涪陵区| 买车| 砀山县| 北碚区| 永善县| 芷江| 镇原县| 肃南| 图片| 景泰县| 鄯善县| 镇安县| 登封市| 龙海市| 东城区| 都匀市| 大庆市|