JavaWeb 將資料庫查詢結果展現到頁面radio,根據頁面使用者選擇查詢資料庫表結果
阿新 • • 發佈:2019-02-14
前端頁面部分
<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 }
</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}
</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 %>')">
<input type="button" id="export_Fzcx" value="匯出" class="blueTr9" onclick="export_Fzcx1('<%=path%>','export_Fzcx.do')" />
</td>
</tr>
<tr>
<td width="25%"> </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;