一个存储过程,或者说SQL,直接查询得到集合。其中核心的表是:user_tab_cols,user_col_commons
View Code
/************************************************************************************/ /* 功能说明:根据表名查询表字段信息 */ /* 参数说明: */ /* i_table_name IN VARCHAR2 表名 */ /* o_cursor OUT cursor_type 返回游标 */ /* */ /* 创建日期 姓名 */ /* 2013-05-06 路人甲 */ /* COPYRIGHT(C) 2004 */ /* PINGAN INSURANCE (GROUP) COMPANY OF CHINA. */ /* ALL RIGHTS RESERVED . */ /************************************************************************************/ create or replace PROCEDURE p_list_table_column( i_table_name IN VARCHAR2, o_cursor OUT cursor_type) AS BEGIN begin open o_cursor for select t1.table_name as tableName, t1.column_name as columnName, t1.data_type as dataType, t1.data_length as dataLength, t2.comments as comments from user_tab_cols t1, user_col_comments t2 where t1.table_name = t2.table_name and t1.column_name = t2.column_name and t1.table_name = upper(i_table_name); end; END p_list_table_column;
调用获取方法,当前采用IBATIS操作:
1、实体对象:
View Code
/**表管理对象 * * @author : 路人甲 * @create_date :2013-5-6 上午08:57:15 * */ public class TableDataManagerDTO extends BaseDTO { /** * UID */ private static final long serialVersionUID = 1824560673414067948L; // 表名 private String tableName; // 字段名 private String columnName; // 字段类型 private String dataType; // 字段长度 private BigDecimal dataLength; // 备注说明 private String comments; public String getColumnName() { return columnName; } public void setColumnName(String columnName) { this.columnName = columnName; } public String getComments() { return comments; } public void setComments(String comments) { this.comments = comments; } public BigDecimal getDataLength() { return dataLength; } public void setDataLength(BigDecimal dataLength) { this.dataLength = dataLength; } public String getDataType() { return dataType; } public void setDataType(String dataType) { this.dataType = dataType; } public String getTableName() { return tableName; } public void setTableName(String tableName) { this.tableName = tableName; } }
2、工具类:
View Code
package com.pingan.saims.scms.systemmanage.util; import java.util.HashMap; import java.util.List; import java.util.Map; import com.opensymphony.oscache.util.StringUtil; import com.paic.pafa.app.web.exception.PafaWebException; import com.pingan.saims.scms.common.util.EXStringUtil; import com.pingan.saims.scms.systemmanage.dto.TableDataManagerDTO; import com.pingan.tsv2.tcms.common.util.CURDUtil; /**动态表获取SQL语句 * * @author : 路人甲 * @create_date :2013-5-6 上午09:46:18 * */ public class TableDataManagerUtil { /**查询ID,都是以rowid为准**/ public static final String SEARCH_ROWID = "rowid"; /**查询条件,都是以rowid为准**/ public static final String SEARCH_WHERE = "searchWhere"; /**获取插入语句 * * @author : 路人甲 * @create_date :2013-5-6 上午10:13:06 * @param tableName 表名 * @param columnList 字段列表 * @param param 结果信息 * @return */ public static String getInsertSQL(String tableName, List<TableDataManagerDTO> columnList, Map<String, Object> param) { if (columnList == null || columnList.size() == 0) { return null; } StringBuffer sqlBuffer = new StringBuffer(50); StringBuffer sqlBuffer1 = new StringBuffer(50); StringBuffer sqlBuffer2 = new StringBuffer(50); for (TableDataManagerDTO column : columnList) { // 如果是空信息不作修改 String value = EXStringUtil.stringNull2Str((String)param.get(column.getColumnName())); if (value.length() == 0) { continue; } if (sqlBuffer1.length() > 0) { sqlBuffer1.append(","); } sqlBuffer1.append(column.getColumnName()); if (sqlBuffer2.length() > 0) { sqlBuffer2.append(","); } // 根据类型判断一下 if (column.getDataType().equals("NUMBER"))// 数字 { sqlBuffer2.append("to_number(").append("'").append(value.replace(",", "")).append("')"); } else if (column.getDataType().equals("DATE"))// 日期 必须都是 'yyyy-mm-dd hh24:mi:ss' { sqlBuffer2.append("to_date(").append("'").append(value).append("', 'yyyy-mm-dd hh24:mi:ss')"); } else { sqlBuffer2.append("'").append(value).append("'"); } } sqlBuffer.append("insert into ").append(tableName).append("(").append(sqlBuffer1).append(") values(").append(sqlBuffer2).append(")"); return sqlBuffer.toString(); } /**获取修改语句 * * @author : 路人甲 * @create_date :2013-5-6 上午10:13:06 * @param tableName 表名 * @param columnList 字段列表 * @param param 结果信息 * @return */ public static String getUpdateSQL(String tableName, List<TableDataManagerDTO> columnList, Map<String, Object> param) { if (columnList == null || columnList.size() == 0) { return null; } StringBuffer sqlBuffer = new StringBuffer(50); StringBuffer sqlBuffer1 = new StringBuffer(50); for (TableDataManagerDTO column : columnList) { // 如果是空信息不作修改 String value = EXStringUtil.stringNull2Str((String)param.get(column.getColumnName())); if (value.length() == 0) { continue; } if (sqlBuffer1.length() > 0) { sqlBuffer1.append(","); } sqlBuffer1.append(column.getColumnName()).append(" = "); if (column.getDataType().equals("NUMBER"))// 数字 { sqlBuffer1.append("to_number(").append("'").append(value.replace(",", "")).append("')"); } else if (column.getDataType().equals("DATE"))// 日期 必须都是 'yyyy-mm-dd hh24:mi:ss' { sqlBuffer1.append("to_date(").append("'").append(value).append("', 'yyyy-mm-dd hh24:mi:ss')"); } else { sqlBuffer1.append("'").append(value).append("'"); } } sqlBuffer.append("update ").append(tableName).append(" set ").append(sqlBuffer1).append(" where ").append(TableDataManagerUtil.SEARCH_ROWID).append(" = '").append(param.get(TableDataManagerUtil.SEARCH_ROWID)).append("'");; return sqlBuffer.toString(); } /**获取删除语句 * * @author : 路人甲 * @create_date :2013-5-6 上午10:13:06 * @param tableName 表名 * @param rowid 指定列ID * @return */ public static String getDeleteSQL(String tableName, String rowid) { if (StringUtil.isEmpty(rowid)) { return null; } StringBuffer sqlBuffer = new StringBuffer(50); sqlBuffer.append("delete from ").append(tableName).append(" where ").append(TableDataManagerUtil.SEARCH_ROWID).append(" = '").append(rowid).append("'");; return sqlBuffer.toString(); } /**获取查询语句_根据ID * * @author : 路人甲 * @create_date :2013-5-6 上午10:36:53 * @param tableName 表名 * @param columnList 字段列表 * @param rowid 指定列ID * @return */ public static String getSelectSQL(String tableName, List<TableDataManagerDTO> columnList, String rowid) { Map<String, String> param = new HashMap<String, String>(); param.put(TableDataManagerUtil.SEARCH_ROWID, rowid); return getSelectSQL(tableName, columnList, param); } /**获取查询语句_根据条件 * * @author : 路人甲 * @create_date :2013-5-6 上午10:36:53 * @param tableName 表名 * @param columnList 字段列表 * @param rowid 指定列ID * @return */ public static String getSelectSQL(String tableName, List<TableDataManagerDTO> columnList, Map<String, String> param) { if (columnList == null || columnList.size() == 0) { return null; } StringBuffer sqlBuffer = new StringBuffer(50); StringBuffer sqlBuffer1 = new StringBuffer(50); for (TableDataManagerDTO column : columnList) { if (sqlBuffer1.length() > 0) { sqlBuffer1.append(","); } sqlBuffer1.append(column.getColumnName()); } sqlBuffer1.append(",").append(TableDataManagerUtil.SEARCH_ROWID).append("||'' as RID"); sqlBuffer.append("select ").append(sqlBuffer1).append(" from ").append(tableName) ; if (param != null && param.size() > 0) { String searchWhere = param.get(TableDataManagerUtil.SEARCH_WHERE); String rowid = param.get(TableDataManagerUtil.SEARCH_ROWID); if (!StringUtil.isEmpty(rowid)) { sqlBuffer.append(" where ").append(TableDataManagerUtil.SEARCH_ROWID).append(" = '").append(rowid).append("'"); } else if (!StringUtil.isEmpty(searchWhere)) { sqlBuffer.append(" where ").append(searchWhere); } } return sqlBuffer.toString(); } /**获取表字段信息 * * @author : 路人甲 * @create_date :2013-5-6 上午10:51:33 * @param tableName * @return * @throws PafaWebException */ @SuppressWarnings("unchecked") public static List<TableDataManagerDTO> getColunmListByTableName(String tableName) throws PafaWebException { Map<String,Object> paraMap = new HashMap<String, Object>(); // 参数Map if (StringUtil.isEmpty(tableName)) { throw new PafaWebException("查询表结构异常,没有选择表名!"); } paraMap.put("i_table_name", tableName); List<TableDataManagerDTO> columnList = CURDUtil.queryList("tableDataManagerResultList", paraMap); // 获取表结构 return columnList; } }
3、控制类:
展示页:
View Code
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { Map model = new HashMap(); String tableName = request.getParameter("tableName"); String searchWhere = request.getParameter("searchWhere"); try { Map<String, String> paramWhere = new HashMap<String, String>(); paramWhere.put(TableDataManagerUtil.SEARCH_WHERE, searchWhere); // 查询where 后的语句 List<TableDataManagerDTO> tableDataManagerDTOs = TableDataManagerUtil.getColunmListByTableName(tableName); String sql = TableDataManagerUtil.getSelectSQL(tableName, tableDataManagerDTOs, paramWhere); Map<String,Object> paraMap = new HashMap<String, Object>(); // 结果信息 paraMap.put("sql", sql); List resultList = CURDUtil.queryList("tableDataManager_list", paraMap); model.put("resultList", resultList); model.put("tableDataManagerDTOs", tableDataManagerDTOs); model.put("tableName", tableName); return new ModelAndView(successView, model); } catch (PafaWebException e){ traceLogger.log(this.getClass().getName(), Level.COMMON_ERROR, this .getClass().getName(), "参数:tableName=" + tableName + "系统管理_系统参数设置_表数据维护_查询,发生错误:", JobUtils.getExceptionDetail(e)); return ExceptionUtils.returnForAjaxErrorView(new PafaWebException("系统管理_系统参数设置_表数据维护_查询,出现异常:" + JobUtils.getExceptionDetail(e))); } } protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { Map model = new HashMap(); String pageType = request.getParameter("pageType"); try { String tableName = request.getParameter("tableName"); List<TableDataManagerDTO> tableDataManagerDTOs = TableDataManagerUtil.getColunmListByTableName(tableName); // 获取公共类型信息 CommonInfoDTO commonInfoDTO = BaseCommonCache.getInstanceNew().getCommonInfoDTO(BaseCommonConstants.COMMON_TYPE_29, tableName); model.put("tableDataManagerDTOs", tableDataManagerDTOs); model.put("pageType", pageType); model.put("commonInfoDTO", commonInfoDTO); if ("insert".equals(pageType)) // 新增 { // 生成序列ID } else if ("update".equals(pageType)) // 修改 { String rowid = request.getParameter("rowid"); String sql = TableDataManagerUtil.getSelectSQL(tableName, tableDataManagerDTOs, rowid); if (StringUtil.isEmpty(sql)) { throw new PafaWebException("查询类型参数异常,没有获取到查询表 "+tableName+" 的语句!"); } Map<String,Object> paraMap = new HashMap<String, Object>(); // 结果信息 paraMap.put("sql", sql); model.put("resultObj", CURDUtil.queryObject("tableDataManager_list", paraMap)); } else { throw new PafaWebException("查询类型参数异常,不存在类型为["+pageType+"]的操作!"); } return new ModelAndView(successView, model); } catch (PafaWebException e) { traceLogger.log(this.getClass().getName(), Level.COMMON_ERROR, this .getClass().getName(), "参数:" + pageType+",发生错误:"+ e, ""); return ExceptionUtils.returnForAjaxErrorView(new PafaWebException("转向表修改,出现异常:"+e.getMessage())); } }
操作页:
View Code
package com.pingan.saims.scms.systemmanage.web.controller.tableDataManager; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.paic.pafa.app.lwc.core.context.support.PafaCoreContexton; import com.paic.pafa.app.web.exception.PafaWebException; import com.paic.pafa.app.web.servlet.ModelAndView; import com.paic.pafa.app.web.servlet.mvc.AbstractController; import com.paic.pafa.logging2.Level; import com.paic.pafa.logging2.Logger; import com.pingan.saims.scms.systemmanage.dto.TableDataManagerDTO; import com.pingan.saims.scms.systemmanage.util.TableDataManagerUtil; import com.pingan.tsv2.tcms.common.util.CURDUtil; import com.pingan.tsv2.tcms.common.util.ExceptionUtils; import com.pingan.tsv2.tcms.common.util.ViewNames; /**系统管理_系统参数设置_表数据维护_保存 * * @author : 路人甲 * @create_date :2013-5-3 下午04:53:23 * */ @SuppressWarnings("unchecked") public class TableDataManagerSaveController extends AbstractController{ // 日志 private Logger traceLogger = PafaCoreContexton.getInstance().getTracer(); protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { // 获取当前登陆用户信息 HttpSession session = request.getSession(); Map loginInfo = (Map) session.getAttribute("logonInfo"); Map model = new HashMap(); String pageType = request.getParameter("pageType"); try { String tableName = request.getParameter("tableName"); List<TableDataManagerDTO> columnList = TableDataManagerUtil.getColunmListByTableName(tableName); Map<String,Object> requestMap = new HashMap<String, Object>(); // 页面获取的Map String sql = ""; model.put("tableDataManagerDTO", columnList); // 获取页面传输过来的参数 for (TableDataManagerDTO column : columnList) { requestMap.put(column.getColumnName(), request.getParameter(column.getColumnName())); } if ("insert".equals(pageType)) // 新增 { sql = TableDataManagerUtil.getInsertSQL(tableName, columnList, requestMap); } else if ("update".equals(pageType)) // 修改 { requestMap.put(TableDataManagerUtil.SEARCH_ROWID, request.getParameter(TableDataManagerUtil.SEARCH_ROWID)); sql = TableDataManagerUtil.getUpdateSQL(tableName, columnList, requestMap); } else if ("delete".equals(pageType)) // 删除 { String rowid = request.getParameter(TableDataManagerUtil.SEARCH_ROWID); sql = TableDataManagerUtil.getDeleteSQL(tableName, rowid); } else { throw new PafaWebException("查询类型参数异常,不存在类型为["+pageType+"]的操作!"); } Map<String,Object> paraMap = new HashMap<String, Object>(); // 参数信息 paraMap.put("sql", sql); CURDUtil.insert("tableDataManager_save", paraMap, loginInfo); // 执行SQL语句 return new ModelAndView(ViewNames.AJAX_SUCCESS_VIEW, model); } catch (PafaWebException e) { traceLogger.log(this.getClass().getName(), Level.COMMON_ERROR, this.getClass().getName(), "参数:" + pageType+",发生错误:"+ e, ""); return ExceptionUtils.returnForAjaxErrorView(new PafaWebException("系统管理_系统参数设置_表数据维护_保存,出现异常:"+e.getMessage())); } } }
4、SQL-MAP配置:
View Code
<!-- 表数据维护 结果集 class="java.util.HashMap"--> <resultMap id="tableDataManagerResultMap" class="com.pingan.saims.scms.systemmanage.dto.TableDataManagerDTO"> <result property="tableName" column="tableName"/> <result property="columnName" column="columnName"/> <result property="dataType" column="dataType"/> <result property="dataLength" column="dataLength"/> <result property="comments" column="comments"/> </resultMap> <!-- 表数据维护 参数 --> <parameterMap id="tableDataManagerParamMap" class="java.util.Map"> <parameter property="i_table_name" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" /> <parameter property="o_cursor" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT" /> </parameterMap> <!-- 表数据维护查询 调用存储过程 --> <procedure id="tableDataManagerResultList" resultMap="tableDataManagerResultMap" parameterMap="tableDataManagerParamMap"> {call scms_statistics_packge.p_list_table_column(?,?)} </procedure> <!-- 修改 --> <update id="tableDataManager_save" parameterClass="java.util.Map"> $sql$ </update> <!-- 查询 --> <select id="tableDataManager_list" resultClass="java.util.HashMap" remapResults="true" parameterClass="java.util.HashMap"> $sql$ </select>
5、列表页面展示:
View Code
<script language="javascript"> //动态刷新 function refreshForm(){ $("refreshForm").submit(); } var detail=null; function showWindow(url, pageType){ var iWidth=820; var iHeight=600; //获得窗口的垂直、水平位置 var iTop = (window.screen.availHeight-30-iHeight)/2; var iLeft = (window.screen.availWidth-10-iWidth)/2; if(detail&&detail.open&&!detail.closed) { alert("新增窗口已打开!请先关闭后再打开!"); detail.focus(); return false; } else{ detail=window.open("about:blank","_timeDeposit_win",'status,scrollbars,resizable,left='+iLeft+',top='+iTop+',width='+iWidth+',height='+iHeight); } popupForm.action = url; popupForm.target = "_timeDeposit_win"; popupForm.pageType.value = pageType; popupForm.submit(); detail.focus(); } // 修改 function updateBtn() { var rowid = $("rowid").value; if(rowid == "") { alert("请选择要修改的信息!"); return false; } var url = "/tableDataManagerSaveToController.do?rowid="+rowid; showWindow(url, "update"); } // 删除 function deleteBtn() { var rowid = $("rowid").value; if(rowid == "") { alert("请选择要删除的信息!"); return false; } if (confirm("您确定删除这条信息吗?")) { var url = "/tableDataManagerSaveController.do?pageType=delete&tableName=<c:out value='${tableName }' />&rowid="+rowid; Ajax.loading(url,function(data){ alert("删除成功!"); refreshForm(); },false); } } // 选中ID function selectedId(rowid) { // 设置要操作的信息值 $("rowid").value=rowid; } </script> <body bgcolor="#EBEEF7" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <form name="refreshForm" method="post" action="/tableDataManagerListController.do"> <input type="hidden" name="tableName" value="<c:out value='${tableName }' />"/> <input type="hidden" name="searchWhere" value="<c:out value='${searchWhere }' />"/> </form> <form action="" name="popupForm" id="popupForm" method="post"> <input type="hidden" name="tableName" value="<c:out value='${tableName }' />"/> <input type="hidden" name="pageType" value=""/> </form> <form name="inputForm" id="inputForm" > <input type="hidden" name="rowid" id="rowid" value=""/> <table width="100%" border="0" cellpadding="0" cellspacing="0" id="inputTable" class="table_1" STRIPED="false" SELECTABLE="true"> <tr align="center" class="FixedTitleRow"> <!-- 头 --> <td nowrap height="25%" class="td_1">选择</td> <c:forEach var="tableDataManagerDTO" items="${tableDataManagerDTOs}" varStatus="j"> <td nowrap height="25%" class="td_1"><c:out value="${tableDataManagerDTO.columnName }"/><br />(<c:out value="${tableDataManagerDTO.comments }"/>)</td> </c:forEach> </tr> <tbody class="datatab" dtolist="abclist"> <c:if test="${empty resultList}"> <tr align="center"> <td nowrap class="td_3" colspan="20">没有与查询条件相匹配的数据!</td> </tr> </c:if> <c:forEach var="conferMsg" items="${resultList}" varStatus="i" > <tr align="center" > <td nowrap class="td_3"> <input type="radio" name="id" value="<c:out value="${conferMsg['RID'] }" />" onclick="selectedId('<c:out value="${conferMsg['RID'] }" />');"/> </td> <c:forEach var="tableDataManagerDTO" items="${tableDataManagerDTOs}" varStatus="j"> <td nowrap class="td_3"> <c:choose> <c:when test="${tableDataManagerDTO.dataType eq 'DATE' }"><fmt:formatDate pattern="yyyy-MM-dd" value="${conferMsg[tableDataManagerDTO.columnName] }"/></c:when> <c:when test="${tableDataManagerDTO.dataType eq 'NUMBER' }"><fmt:formatNumber pattern="#,##0.00" value="${conferMsg[tableDataManagerDTO.columnName] }"/></c:when> <c:otherwise><c:out value="${conferMsg[tableDataManagerDTO.columnName] }" /></c:otherwise> </c:choose> </td> </c:forEach> </tr> </c:forEach> </tbody> </table> </form> <table width="100%"> <tr><td> </td></tr> <tr> <td align="center"> <input type="button" name="insertBtn" id="insertBtn" class="button23" onclick="updateBtn();" value="修改" /> <input type="button" name="insertBtn" id="insertBtn" class="button23" onclick="deleteBtn();" value="删除" /> </td> </tr> </table> </body>
添加修改页:
View Code
<jsp:useBean id="dateNow" class="java.util.Date" /> <script language="javascript"> //初始Form var init = function() { new FormCheck("inputForm",{validateChange:false,allowReSubmit:true,ajax:true,beforeSubmit:beforeSubmit,onAjaxSuccess:gotoPage,ajaxError:gotoFail}); } window.addEvent('domready', init); //返回提交结果,刷新父页面 function gotoPage() { alert("保存成功!"); window.close(); opener.refreshForm(); } function beforeSubmit() { $("save").disabled=true; } function gotoFail() { $("save").disabled=false; } </script> <body bgcolor="#EBEEF7" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td nowrap height="30" class="address"> ·当前位置:系统管理>>系统参数设置>>表数据维护>> <c:if test="${pageType eq 'update' }">修改</c:if> </td> </tr> </table> <!-- 用款释放信息 --> <form name="inputForm" method="post" action="/tableDataManagerSaveController.do"> <input type="hidden" name="pageType" value="<c:out value="${pageType }"/>"> <input type="hidden" name="rowid" value="<c:out value="${resultObj['RID'] }"/>"> <input type="hidden" name="tableName" id="tableName" value="<c:out value="${commonInfoDTO.commonValue }" />"/> <table width="98%" border="0" cellpadding="0" cellspacing="0" id="listTable" class="table_1" > <tr align="center"> <td class="td_1_1">数据表名:<br /> (在公共类型中修改配置,类型type=29)</td> <td align="left" class="td_3_3" colspan="3"> <c:out value="${commonInfoDTO.commonValue }" />(<c:out value="${commonInfoDTO.commonName }" />) </td> </tr> <tr align="center"> <c:forEach var="tableDataManagerDTO" items="${tableDataManagerDTOs }" varStatus="i"> <c:if test="${i.index > 0 and i.index%2==0 }"> </tr> <tr align="center"> </c:if> <td class="td_1_1"><c:out value="${i.index+1 }" />、<c:out value='${tableDataManagerDTO.columnName }' /><br />(<c:out value='${tableDataManagerDTO.comments }' />)</td> <td align="left" class="td_3_3"> <c:choose> <c:when test="${tableDataManagerDTO.columnName eq 'CREATED_BY' or tableDataManagerDTO.columnName eq 'UPDATED_BY' }"> <!-- 特殊处理(创建人、修改人) --> <c:choose> <c:when test="${empty resultObj }"> <input type="text" style="height:20px;" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" class="input1" value="<c:out value='${userInfo.userUID }' />" /> </c:when> <c:when test="${!empty resultObj and tableDataManagerDTO.columnName eq 'CREATED_BY'}"> <input type="text" style="height:20px;" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" class="input1" value="<c:out value='${resultObj[tableDataManagerDTO.columnName]}' />" /> </c:when> <c:otherwise> <input type="text" style="height:20px;" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" class="input1" value="<c:out value='${userInfo.userUID }' />" /> </c:otherwise> </c:choose> </c:when> <c:when test="${tableDataManagerDTO.columnName eq 'DATE_CREATED' or tableDataManagerDTO.columnName eq 'DATE_UPDATED' }"> <!-- 特殊处理(创建时间、修改时间) --> <c:choose> <c:when test="${empty resultObj }"> <input type="text" style="height:20px;" size="20" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" class="input2" value="<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${dateNow }"/>" /> </c:when> <c:when test="${!empty resultObj and tableDataManagerDTO.columnName eq 'DATE_CREATED'}"> <input type="text" style="height:20px;" size="20" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" class="input2" value="<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${resultObj[tableDataManagerDTO.columnName]}"/>" /> </c:when> <c:otherwise> <input type="text" style="height:20px;" size="20" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" class="input2 " value="<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${dateNow }"/>" /> </c:otherwise> </c:choose> </c:when> <c:otherwise> <c:choose> <c:when test="${tableDataManagerDTO.dataType eq 'NUMBER' }"> <!-- 数字 --> <input type="text" style="height:20px;" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" maxlength="<c:out value='${tableDataManagerDTO.dataLength}' />" class="validate['number[<c:out value='${tableDataManagerDTO.dataLength}' />]'] input1" value="<c:out value='${resultObj[tableDataManagerDTO.columnName]}' />" /> </c:when> <c:when test="${tableDataManagerDTO.dataType eq 'DATE' }"> <!-- 日期 --> <input type="text" style="height:20px;" size="20" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" class="input2" value="<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${resultObj[tableDataManagerDTO.columnName] }"/>" /> </c:when> <c:otherwise> <c:choose> <c:when test="${tableDataManagerDTO.dataLength > 40}"> <textarea cols="30" rows="2" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />"><c:out value='${resultObj[tableDataManagerDTO.columnName]}' /></textarea> </c:when> <c:when test="${tableDataManagerDTO.dataLength < 5}"> <input type="text" style="height:20px;" size="5" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" maxlength="<c:out value='${tableDataManagerDTO.dataLength}' />" class="input1" value="<c:out value='${resultObj[tableDataManagerDTO.columnName]}' />" /> </c:when> <c:otherwise> <input type="text" style="height:20px;" size="<c:out value='${tableDataManagerDTO.dataLength}' />" name="<c:out value='${tableDataManagerDTO.columnName }' />" id="<c:out value='${tableDataManagerDTO.columnName }' />" maxlength="<c:out value='${tableDataManagerDTO.dataLength}' />" class="input1" value="<c:out value='${resultObj[tableDataManagerDTO.columnName]}' />" /> </c:otherwise> </c:choose> </c:otherwise> </c:choose> </c:otherwise> </c:choose> </td> </c:forEach> </tr> </table> <br> <table width="100%"> <tr align="center"> <td align="center" colspan="2"> <input type='button' class="button4 validate['submit']" name='save' id='save' value="提交" /> <input type="button" name="btnClose" value="关闭" onClick="javascript:window.close();" class="button23" /> </td> </tr> </table> </form> </body>