1. 程式人生 > >JavaWeb 將資料庫查詢結果展現到頁面radio,根據頁面使用者選擇查詢資料庫表結果

JavaWeb 將資料庫查詢結果展現到頁面radio,根據頁面使用者選擇查詢資料庫表結果

如圖實現後臺查詢日期和類別,並將結果返回到頁面供使用者選擇,然後根據使用者的選擇再將查詢的表單結果返回到頁面
前端頁面部分

<table id="tableWorkBook" cellpadding="0" cellspacing="0" width="90%" align="center" >
        <tr height="30" align="left">
            <td width="30%" height="40">
                <b>分組查詢</b>
            </td>           
        </tr>
        <tr>
<td width="30%" align="center" height="40"> 資料日期: <c:forEach items="${listdataDate }" var="map" varStatus="cnt" > <!--此處的三目運算是 當點選radio查詢之後,radio仍然保持操作所選的選象--> <input type="radio" id="radio1" name="d_date" ${not empty
frmFzcx.d_date ? (frmFzcx.d_date == map.d_date ? "checked" : "") : (cnt.index == 0 ? "checked" : "")} value="${map.d_date }" >
${map.d_date }&nbsp;&nbsp; </c:forEach> </td> </tr> <tr> <td align="center"
height="40" id="para_name_select">
類 別: <!-- 未解決漢字在傳輸過程中的問題(其實本系統漢字執行無障礙),此處將產品名稱與產品程式碼繫結,實現key_value的模式--> <c:forEach items="${listPara}" var="map" varStatus="cnt"> <input type="radio" id ="radio2" value="${map.para_code}" name="para_name" ${not empty frmFzcx.para_name ? (frmFzcx.para_name == map.para_code ? "checked" : "") : (cnt.index == 0 ? "checked" : "")}>${map.para_name}&nbsp; </c:forEach> </td> </tr> <tr> <td width="30%" align="center" height="40"> <input type="button" name="select_fzcx1" value="查 詢" class="blueTr9" onclick="init_Fzcx('<%=path %>')">&nbsp; <input type="button" id="export_Fzcx" value="匯出" class="blueTr9" onclick="export_Fzcx1('<%=path%>','export_Fzcx.do')" /> </td> </tr> <tr> <td width="25%">&nbsp;</td> </tr> </table> <table id="tablist" width="90%" border="1" cellspacing="0" cellpadding="1" align="center"> <tr class="title" align="center" > <th align="center" width="10%" height="22">名稱</th> <th align="center" width="10%" height="22">持倉金額</th> <th align="center" width="10%" height="22">日期</th> </tr> <c:forEach items="${resultList}" var="map" varStatus="cnt"> <tr align="center" class="${cnt.index%2==0?'odd':'even'}"> <td id="${cnt.index }_para_ad" nowrap>${map.para_ad}</td> <!-- <td id="${cnt.index }_type_code" nowrap>${map.para_name}</td>--> <td id="${cnt.index }_s_rmc" nowrap>${map.s_rmc}</td> <td id="${cnt.index }_d_date" nowrap>${map.d_date}</td> </tr> </c:forEach> </table> <table width="100%" align="center" id="navigate" > <tr><td align="right"><app:navigate objectName="FormFzcx"/></td></tr> </table> //對應的function //獲取para_name function Para_select(obj_name){ var str = ""; jQuery("#tableWorkBook").find("input[type=radio][name='"+obj_name+"']").each(function(){ if(jQuery(this).attr("checked")){ str = str + "#" +jQuery(this).val(); } }); return str; } //獲取日期 function getRadioObjValue(obj_name){ var str = ""; jQuery("#tableWorkBook").find("input[type=radio][name='"+obj_name+"']").each(function(){ if(jQuery(this).attr("checked")){ str = jQuery(this).val(); } }); return str; } function init_Fzcx(path,action_value){ var form =document.forms[0]; form.d_date.value = getRadioObjValue("d_date"); form.para_name.value = Para_select("para_name"); form.action = path +"/init_Fzcx.do"; form.submit(); }

完成公用方法,將日期和型別的查詢返回到radio

public List queryParacodeDataList() {
String sql ="select distinct trim(para_name) para_name, para_code from T_S_PRODUCT_INFO  where para_code in ('PARA_AC','PARA_AD','PARA_AL','PARA_AK') order by para_code";
            List list = new ArrayList();            
            list = jdbcTemplate.queryForList(sql);  
            return list;
        }

對應的Action

public ActionForward init_Fzcx(ActionMapping mapping,
            ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        FormFzcx frm = (FormFzcx) form;
        FormUserOperation userOp = Constant.getFormUserOperation(request);

        List listdataDate = new CommonMethod().queryDateDataList();
        List listPara= new CommonMethod().queryParacodeDataList();
        request.setAttribute("listdataDate", listdataDate);     
        // 設定每頁行數
        if (frm.getRowsPerPage() == 0) {
                frm.setRowsPerPage(20);             
        }       
        List<FormFzcx> resultList = getBO().init_Fzcx(frm,listPara);            
        request.setAttribute("resultList", resultList);
        request.setAttribute("listPara", listPara);
        request.setAttribute("frmFzcx", frm);
        return mapping.findForward("success");
    }

對應的DAO層

public List<FormFzcx> init_Fzcx(FormFzcx formServer,List listPara) {        
        StringBuffer sql = new StringBuffer();      
        String d_date = formServer.getD_date();         
        if(d_date == null || "".equals(d_date)){
                d_date="2017/09/30";                
         }              
        sql.append(" select b.PARA_AD,");
        。。。
        Map map ;
        if(formServer.getPara_name() ==null || "".equals(formServer.getPara_name()) && formServer.getPara_name().equals("PARA_AC") ){
            map=(Map)listPara.get(0);
            sql.append("                nvl(max(decode(t.para_code, 'PARA_AC', t.para_value)), '') PARA_AD");               
        }else if
        。。。
        int rowsCount = jdbcTemplate.queryForInt("select count(1) from ("+sql.toString()+") ");
        formServer.setRowsCount(rowsCount);
        //為物件分頁賦值
        List list=(List<FormFzcx>) jdbcTemplate.queryForListPage(sql.toString(), formServer.getStartPosition(),
                formServer.getRowsPerPage(), FormFzcx.class);
        return list;