场景再现:
需求为实现红框中所有字段的撰取效果;
传统做法:新建十几张不同的jsp+不同的存储过程;这样能简单实现,但是一旦碰到后期修改就需要花费很长时间进行维护;
我们的解决方法:首先,为我们每个按钮添加跳转方法的同时,加上标记属性,QTAG,当QTAG=1时,显示管理费字段,当QTAG=2时,显示XXX字段;
function GL_F() {
$("form:eq(0)")
.attr(
"action",
"loadDataDAOP.action?reloadName=/WEB-INF/jsp/fsy/web/sum_glfee.jsp&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc&cmd.QTAG=1")
.submit();
}
function KZ_F() {
$("form:eq(0)")
.attr(
"action",
"loadDataDAOP.action?reloadName=/WEB-INF/jsp/fsy/web/sum_glfee.jsp&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc&cmd.QTAG=2")
.submit();
其次,我们在详细页的form表单中添加隐藏域来保存QTAG属性,以方便我们在使用if判断的时候能够正常执行;
<form method="post" name="listForm" id="listForm" class="detailForm" style='padding-bottom:20px;' action="loadDataDAOP.action?cmd.sqlKey=ZJM_TEST.GL_FEE&reloadName=/WEB-INF/jsp/fsy/web/sum_glfee.jsp&cmd.sqlType=proc">
<input type="hidden" value="${page.currentPage}" name="page.currentPage" id="currentPage" />
<input type="hidden" value="${mapParam.QTAG}" name="cmd.QTAG" id="QTAG" />
<input type="hidden" name="cmd.QORDER_STATE" value="${mapParam.QORDER_STATE }" id='QORDER_STATE' />
<div class='tableCount' style="border-top: 1px solid #ddd;">
<div class="tableLeft">
共检测到<span>${page.allRecordCount}</span>条数据
</div>
</div>
最后,我们再使用jsp里面的if循环,判断QTAG属性来选择性的显示不同字段;
<c:choose>
<c:when test="${mapParam.QTAG==1}">
<td width='10%'>管理费金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==2}">
<td width='10%'>刻字费金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==3}">
<td width='10%'>贴金费金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==4}">
<td width='10%'>照片费1金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==5}">
<td width='10%'>照片费2金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==6}">
<td width='10%'>照片费3金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==11}">
<td width='10%'>刻福字费金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==7}">
<td width='10%'>再次安葬费金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==8}">
<td width='10%'>客服费金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==9}">
<td width='10%'>材料费金额(元)</td>
</c:when>
<c:when test="${mapParam.QTAG==10}">
<td width='10%'>其他费金额(元)</td>
</c:when>
</c:choose>
补充:当我们为该页面做列表导出的时候,我们也需要获取到QTAG属性从而选择性的导出相应的表格;
function exportClick() {
if (confirm("确定要导出列表数据吗?")) {
var b="${mapParam.QTAG}";
alert(b);
switch(b){
case '1':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_gl_fee&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '2':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_kz_fee&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '3':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_tj_fee&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '4':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_zp_f1&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '5':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_zp_f2&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '6':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_zp_f3&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '7':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_zaz_fee&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '8':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_kf_fee&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '9':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_cl_fee&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
case '10':
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_other_fee&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
default:
pubJS_exportExcel_V1(
"listForm",
"cmd.xlsKey=export_kfz_fee&cmd.sqlKey=ZJM_TEST.GL_FEE&cmd.sqlType=proc");
break;
}
}
}
切记:这里的listForm要对应表导中的listForm,因为我们的form表单中有隐藏域的条件,故我们无需在拼装导出sql的时候加条件!
关于列表导出
我们在jsp写好导出按钮逻辑后,并且上传excel模板后,为了实现本地导出成功模拟,需要修改本地的配置文件;resource->context-inter-pub.xml,
<!-- 附件管理接口配置信息 -->
<bean id="uploadUrl" class="com.gaf.wqsm.pub.command.UploadUrl">
<property name="ENCRYKEY" value="" />
<!-- 本地存储路径(这里要修改成项目本地的存储路径) -->
<property name="tmpPath" value="E:\workPlace\fsy\WebRoot" />
<property name="rootPath" value="E:\workPlace\fsy\WebRoot" />
<property name="modelPath" value="E:\workPlace\fsy\WebRoot" />
<property name="tmpFile" value="tmpFile.txt" />
<!-- 数据库表前的相对路径 -->
<property name="subUrl" value="/files/upload/" />
<property name="open" value="true" />
<property name="delTag" value="false" /><!-- 附件上传后是否删除本地附件,true为删除,false为不删除 -->
<property name="uploadActionUrl" value="uploadFileUFA.action" />
<!-- 服务器之间访问地址 -->
<property name="uploadFileUrl" value="http://localhost:8080/fsy/files/upload/" />
<property name="uploadAttachmentUrl" value="http://wqzs.zjwq.net/saveFileFUA.action" />
<property name="imageAttachmentUrl" value="http://wqzs.zjwq.net/uploadFileFUA.action" />
<!--浏览器访问域名 -->
<property name="uploadFileUrlBrowse" value="http://localhost:8080/fsy" />
</bean>
resource->systemconfig.properties,