<ec:table

<ec:table 
items="presidents" 
var="pres" 
imagePath="${pageContext.request.contextPath}/images/*.gif" 
action="${pageContext.request.contextPath}/presidents.run" 
filterable="false" 
sortable="false" > 
...
</ec:table>

<ec:table>里的属性还有:
a.   rowsDisplayed,rowsDisplayed也可以在extremecomponents.properties文件中设定
b.   showPagination ,如果你想在一页中显示所有行,只需要设置showPagination为false。
c.   TableTag关联了很多样式属性:

<ec:table cellspacing="0" cellpadding="0" border="0" width="80%" style="" styleClass="" />
所有这些都是可选的。


2.
使用highlightRow属性可以设置行的高亮显示,它的值为true或false,默认值为false。

<ec:table items="presidents" var="pres" action="${pageContext.request.contextPath}/presidents.run" > 
<ec:row highlightRow="true">    
   <ec:column property="name"/>   
   <ec:column property="term"/> 
</ec:row>
</ec:table>
设置highlightRow属性后,它将插入设置行css类的javascript脚本,默认的css 类为highlight。你可以使用highlightClass来使用定制的css类。

3.
为了便于你对于行数据进行动态交互处理,提供了onclick、onmouseover和 onmouseout属性。

<ec:row onclick="" onmouseover="" onmouseout="" />


4.
RowTag关联了很多样式属性:

<ec:row style="" styleClass="" highlightClass="" />


5.

提供可选取值方法的主要原因是使你能够对其他类型的html标签提供动作支持,例如显示 一幅图片或者通过定义href使该列成为到其它页的一个链接。

<ec:table items="presidents" var="pres" action="${pageContext.request.contextPath}/presidents.run" > 
<ec:row>    
   <ec:column property="lastName">      
   <a href="http://goto.president.detail">${pageScope.pres.lastName}</a>   
   </ec:column> 
</ec:row>
</ec:table>


6。
<ec:column property="time" title="时间" parse="yyyy-MM-dd" format="yyyy年MM月dd日" cell="date"/>


7。
TableTag中有filterable和sortable属性,ColumnTag中也有相同的属性。 列的filterable和sortable属性将覆盖表的filterable和sortable属性设置。当你需要除了对表中的一、两列之外的 所有列进行过滤和排序时,十分便利。

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" >
<ec:row>    
   <ec:column property="firstName" filterable="false"/> 
   <ec:column property="lastName" sortable="false"/> 
</ec:row>
</ec:table>


8。视图问题:

viewsAllowed属性制定类允许使用的视图。视图包括:html、pdf、xls、csv,以及任何定制的视图。 如果你指定一个或几个视图,那么列仅能使用这些指定的视图。例如:你指定viewsAllowed="pdf",这意味着 这列只允许PDF导出,而不能进行其他格式的导出或html视图。

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" > 
<ec:row>   
   <ec:column property="firstName"/> 
   <ec:column property="lastName" viewsAllowed="pdf"/> 
</ec:row
</ec:table>
viewsDenied属性制定类不允许使用的视图。视图包括:html、pdf、xls、csv,以及任何定制的视图。 如果你指定一个或几个视图,那么列仅这些指定的视图不能被使用。例如:你指定viewsDenied="html",这意味着 这列不允许使用html试图,但能进行任何形式的导出。

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" >
<ec:row> 
   <ec:column property="firstName"/> 
   <ec:column property="lastName" viewsDenied="html"/> 
</ec:row>
</ec:table>


9。ParameterTag

eXtremeTable能够指定是否处理所有的参数。默认为处理所有的参数,这意味着当你进行 过滤、排序、分页时,所有的参数都被eXtremeTable保存并传到JSP中。通常这是你需要的功能, 然而,有时候你需要只允许一些特定的参数保存到eXtremeTable中。我喜欢把它看作锁定extremeTable, 可以通过设置表的autoIncludeParameters属性值为false来到达目的:

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" autoIncludeParameters=”false” > 
...
</ec:table>
甚至当表被锁定时,你仍然可以通过简单地使用parameter标签来包含一些你想使用的参数。下例 包含了foo参数:

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" autoIncludeParameters=”false” > 
<ec:parameter name=”foo” value=”${param.foo}”/> 
...
</ec:table>
现在所有的eXtremeTable参数都被锁定。但过滤、排序和翻页时,foo参数仍将被传递。


10. .propeties取代

为了替代硬编码eXtremeTable使用的默认属性值,我在属性文件中配置所有用到的属性。 如果你需要覆盖任何默认的设置,你可以创建自己的extremecomponents.properties文件 并设置你想改变的值。

为了设置属性文件,你应该如下例所示在/WEB-INF/web.xml文件中声明一个context-param,并 指定你的属性文件的路径:

<context-param> <param-name>extremecomponentsPreferencesLocation</param-name> <param-value>/org/extremesite/resource/extremecomponents.properties</param-value></context-param>
你可以认为属性文件为你提供了一个对所有的eXtremeTables声明全局设置的一个方法。 创建属性文件的最大好处就是避免在标签中复制、粘贴相同的属性。典型的extremecomponents.properties文件如下所示:

table.imagePath=/extremesite/images/*.gif
table.rowsDisplayed=12
column.parse.date=yyyy-MM-dd
column.format.date=MM/dd/yyyy
column.format.currency=$###,###,##0.00

 

在属性文件定义的TableTag使用最多的两个属性是:imagePath和rowsDisplayed。如果你不在属性文件中声明 这些属性,你需要在每个eXtremeTable中添加他们。典型的表如下所示:

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" imagePath="${pageContext.request.contextPath}/images/*.gif" rowsDisplayed="12" title="Presidents" > ...</ec:table>
如果在属性文件声明imagePath和rowsDisplayed,则表如下所示:

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" title="Presidents" > ...</ec:table>
正如你所见,属性文件避免了重复编码。


在属性文件定义的ColumnTag使用最多的两个属性是:parse和format。如果你不在属性文件中声明 这些属性,你需要在每个eXtremeTable中添加他们。典型的列使用日期cell如下所示:

<ec:column property="dateOfBirth" cell=”date” parse=”yyyy-MM-dd” format=”MM/dd/yyyy”/> 
如果在属性文件声明parse和format,则列如下所示:

<ec:column property="dateOfBirth" cell=”date”/> 
当然你仍然可以定义parse和format属性来覆盖全局设置,但是大多数工程对于日期使用一致的parse 和format。需要注意属性文件中parse.date和format.date的声明语法。

下例为使用货币cell的典型列:

<ec:column property="salary" cell=”currency” format=”$###,###,##0.00”/> 
如果在属性文件声明format,则列如下所示:

<ec:column property="salary" cell=”currency”/> 
另外,你可以声明一个定制的format并在列中通过使用列的basis来使用它,我把这想象为named属性。因此如果你的 extremecomponents.properties文件如下所示:

table.format.myCustomDate=yy-MM-dd
那么列可以如下使用定制的format:

<ec:column property="dateOfBirth" cell="date" format=”myCustomDate”>

 

11。ExportTag

eXtremeTable具有导出不同格式文件的功能,导出的数据为过滤和排序后的所有结果集, 分页不会影响返回的结果集。换句话说,如果表数据分多页显示,那么所有页的数据都将被导出。 导出的格式为Microsoft Excel (OpenOffice Calc)、PDF和CSV。

使用ExportXlsTag导出Microsoft Excel (OpenOffice Calc):

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" /> 
<ec:exportXls    fileName="presidents.xls"    tooltip="Export Excel"/> 
...
</ec:table>
使用ExportPdfTag导出PDF。所有要做的就是指定fileName属性和一些样式属性:

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" />
<ec:exportPdf    fileName="presidents.pdf"    tooltip="Export PDF"    headerColor="blue"    headerBackgroundColor="red"    headerTitle="Presidents"/> ...
</ec:table>
使用ExportCsvTag导出CSV。当使用CSV导出是默认的分隔符为‘,’(comma)。你可以使用 delimiter属性来指定为其他的符号。下面为指定‘|’(pipe)为CSV分隔符的示例:

<ec:table items="presidents" action="${pageContext.request.contextPath}/presidents.run" /> 
<ec:exportCsv    fileName="presidents.txt"    tooltip="Export CSV"    delimiter="|"/> 
...

</ec:table>

<ec:row>标签 


◆ 属性: rowId 
描述: 
列表的行的id,对应<tr>的id属性. 

◆ 属性: recordKey 
描述: 
行所对应的记录的唯一主键值,主要用于gird列表的删改 

◆ 属性: highlightRow 
描述: 
鼠标经过某行时,该行是否变色. 

◆ 属性: selectlightRow 
描述: 
鼠标点击某行时,该行是否变色. 

◆ 属性: interceptor 
描述: 
自定义行拦截器.值为对应的拦截器的实现. 
该拦截器可用来添加或修改行的属性 

◆ 属性: ondblclick 
描述: 
定义鼠标双击事件.相当于<tr>的ondblclick事件 

◆ 属性: onclick 
描述: 
定义鼠标的单击事件.相当于<tr>的onclick事件 

◆ 属性: onmouseout 
描述: 
定义鼠标的onmouseout事件.相当于<tr>的onmouseout事件 

◆ 属性: onmouseover 
描述: 
定义鼠标的onmouseover事件.相当于<tr>的onmouseover事件 

◆ 属性: style 
描述: 
相当于<tr>的style. 

◆ 属性: styleClass 
描述: 
相当于<tr>的class. 

<ec:extend>标签 
具体的内容可以是任何合法的HTML代码 
◆ 属性: location 
描述: 
在什么位置添加扩展内容.  
top: 列表上方(在列表外部) 
bottom: 列表下方(在列表外部) 
留空: 工具条的 extend扩展区 

<ec:extendrow>标签 
扩展一行.具体的内容可以是任何合法的<tr>相关的HTML代码 

◆ 属性: location 
描述: 
在什么位置添加扩展内容.  
bottom: 列表内部的下方,和列表内容主体在一个<table>内 
留空: 同上



◆ 属性: tableId 
描述: 
设置列表的唯一标识,默认为"ec",当一个页面内有多个ECSIDE列表时,必须为每个列表指定不同的tableId. 

◆ 属性: theme 
描述: 
设置列表的风格所使用的主题. 默认为ecside. 

◆ 属性: generateScript 
描述: 
是否自动生成ECSide所需的js脚本. 可选 true/false ( 默认:true ) 

◆ 属性: useAjax 
描述: 
是否使用ajax技术进行翻页、过滤、排序等操作. 可选 true/false ( 默认:true ) 

◆ 属性: doPreload 
描述: 
是否使用预读取技术. 可选 true/false ( 默认:true ) 

◆ 属性: classic 
描述: 
是否使用传统的简单列表. 可选 true/false ( 默认:false ) 

◆ 属性: autoIncludeParameters 
描述: 
是否开启"自动保留"特性.翻页 过滤 排序时当前页的表单域将以hidden input的形式被保留(传递到新页面). 可选 true/false ( 默认:true ) 
关于此项的更多说明可参见原版ec手册 

◆ 属性: includeParameters 
描述: 
在关闭"自动保留"时,希望被自动保留的表单域的标示,支持多个,用","分割 

◆ 属性: excludeParameters 
描述: 
在开启"自动保留"时,希望不被自动保留的表单域的标示,支持多个,用","分割 

补充: 
如果理解了 autoIncludeParameters 的用处 就不难理解以上两个属性的用处了 
注意: excludeParameters 比 includeParameters 有更高的优先级 
即 excludeParameters="a"  includeParameters ="a" 时 a仍然将被排除 
建议尽量使用 excludeParameters 不要使用 includeParameters ,除非你非常明确自己要包含的东西。 
includeParameters 使用不当会使你忘记包含一些必须包含的东西. 

excludeParameters="表单属性名称1,表单属性名称2"    (表单属性名称不能含有半角的逗号) 
includeParameters="表单属性名称3,表单属性名称4" 


◆ 属性: toolbarContent 
描述: 
设置工具条要显示的内容,以及各个元素的前后位置. 
默认状态是 toolbarContent="navigation|pagejump |pagesize|refresh save add del|export|extend|status" 
例子    toolbarContent="pagejump|navigation|export|extend|status" 
此时 工具条将不显示"页面行数调整"框和"刷新 保存 增删按钮" 同时顺序也会和默认的发生变化 

navigation 导航条 
pagejump 页面跳转 
pagesize 页面行数设置 
refresh 刷新当前页 
save 保存列表记录 
add 添加记录 
del 删除记录 
export 导出按钮区 
extend 自定义扩展区 
status 数据信息区 
◆ 属性: toolbarLocation 
描述: 
设置工具条要显示的位置(列表的上面还是下面). 可选top/bottom/none, 默认top. 

◆ 属性: paginationLocation 
描述: 
同toolbarLocation. 

◆ 属性: rowsDisplayed 
描述: 
设置每页显示的默认记录条数. 

◆ 属性: pageSizeList 
描述: 
设置调整"每页记录数"的下拉框内的候选值. 
例如: pageSizeList="10,20,50,100,1000,2000,all" 
其中的all为增加全部显示功能。 
例子   pageSizeList="10,20,50" 
此时列表里将只显示 10 20 50供选择 
max:数字 特性 : 
pageSizeList="max:200,10,15,30,50,100,all" 
如果 10--100以及all中,某一项大过了max的200则 不在列表中显示。 
也可以只使用pageSizeList="max:200" 此时将 使用默认设置,并用max限制。 

◆ 属性: nearPageNum 
描述: 
设置"邻近页导航"的前后区间范围 

◆ 属性: maxRowsExported 
描述: 
设置导出和打印操作所允许的最大记录条数 

◆ 属性: resizeColWidth 
描述: 
是否允许调整列宽. 可选 true/false ( 默认:true ) 

◆ 属性: minColWidth 
描述: 
设置调整列宽时,任意一列所允许的最小宽度 

◆ 属性: height 
描述: 
设置列表的高度. 

◆ 属性: minHeight 
描述: 
设置列表的最小高度 

◆ 属性: xlsFileName 
描述: 
设置导出xls的文件的文件名. 不指定时为不允许导出xls文件 

◆ 属性: pdfFileName 
描述: 
设置导出pdf的文件的文件名. 不指定时为不允许导出pdf文件 

◆ 属性: csvFileName 
描述: 
设置导出csv的文件的文件名. 不指定时为不允许导出csv文件 
◆ 属性: showPrint 
描述: 
是否显示打印按钮. true/false. 

◆ 属性: action 
描述: 
列表执行翻页 过滤 排序等操作时所要提交的ACTION 

◆ 属性: insertAction 
描述: 
可编辑列表时,插入数据所要提交的ACTION 

◆ 属性: updateAction 
描述: 
可编辑列表时,更新数据所要提交的ACTION 

◆ 属性: deleteAction 
描述: 
可编辑列表时,删除数据所要提交的ACTION 

◆ 属性: shadowRowAction 
描述: 
显示shadowRow时所要提交的ACTION 

◆ 属性: editable 
描述: 
是否开启可编辑列表功能. 

◆ 属性: sortable 
描述: 
是否允许对列表进行按列排序 

◆ 属性: filterable 
描述: 
是否开启过滤功能. 


◆ 属性: title 
描述: 
设置列表的标题,该标题将显示在列表的上方. 

◆ 属性: showTitle 
描述: 
是否显示列表的title. 

◆ 属性: style 
描述: 
设置列表的table的style,相当于html里的style. 

◆ 属性: styleClass 
描述: 
设置列表的table的style class,相当于html里的class. 

◆ 属性: items 
描述: 
设置要展现的数据对应的集合在内存中存放时使用的名字 

◆ 属性: var 
描述: 
设置指向数据迭代中的当前记录所对应的bean的变量的名称. 

◆ 属性: locale 
描述: 
设置列表的本地化信息. 例如 fr_FR 将使列表使用法文方式显示(前提是已经正确提供相关资源文件). 

◆ 属性: interceptor 
描述: 
自定义列表拦截器.值为对应的拦截器的实现. 
该拦截器可用来添加或修改列表的属性 
◆ 属性: retrieveRowsCallback 
描述: 
指定列表所使用的分页机制.值可以是自定义的完整的callback类名,也可以是在properties文件内指定的简称 

◆ 属性: filterRowsCallback 
描述: 
指定列表所使用的过滤机制.值可以是自定义的完整的callback类名,也可以是在properties文件内指定的简称 

◆ 属性: sortRowsCallback 
描述: 
指定列表所使用的排序机制.值可以是自定义的完整的callback类名,也可以是在properties文件内指定的简称 

关于以上三个属性的使用请见"ECSide列表的RowsCallback机制"文档. 

◆ 属性: width 
描述: 
指定列表的宽度.相当于<table>的width属性 

◆ 属性: listWidth 
描述: 
Specify the location of pagination bar . Acceptable values are up or down. 

◆ 属性: listHeight 
描述: 
Specify the location of pagination bar . Acceptable values are up or down. 

◆ 属性: height 
描述: 
指定列表的高度.相当于<table>的height属性.当值为"auto"时,列表高度将随着列表内容自动调整. 
只有在非classic模式下才有效. 

◆ 属性: excludeTool 
描述: 
Specify whether or not to show the rows displayed bar . Acceptable values are "true" or "false". 

◆ 属性: showHeader 
描述: 
是否显示列表表头.

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@ include file="/commons/taglibs.jsp"%> <%@ include file="/commons/msg.jsp"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>${applicationScope['System.ConsoleWebName']}</title> <link href="${ctx}/console/styles/common/main.css" rel="stylesheet" type="text/css" /> <link href="${ctx}/console/styles/extremetable/extremecomponents.css" rel="stylesheet" type="text/css"> <link href="${ctx}/console/styles/validation/validation_style.css" rel="stylesheet" type="text/css" /> <script src="${ctx}/console/scripts/jquery/${applicationScope['System.JQuery.JS']}" type="text/javascript"></script> <script src="${ctx}/console/scripts/extremetable/extremecomponents.js" type="text/javascript"></script> <script type="text/javascript" src="${ctx}/console/scripts/validation/validation.js"></script> <script type="text/javascript"> // 查询方法设置首页 function setPage() { $("input[name='ec_p']").val(1); } function submitValue() { const checkedBoxes = $("input[name='sub']:checked"); if (checkedBoxes.length === 0) { alert("请至少选择一个网段"); console.log("选中的网段: 无"); return false; } const selectedSubnets = checkedBoxes.map(function() { return $(this).val(); }).get(); console.log("选中的网段:", selectedSubnets); // 现在变量名正确 return true; } </script> </head> <body> <div class="wrap"> <form action="${ctx}/console/admin/AdminManage.do?method=doSubList" method="post" id="presForm" name="presForm"> <!-- 隐藏域 开始 --> <cpm:input type="hidden" id="search" name="search" value="role" /> <!-- 隐藏域 结束 --> <!-- 导航 开始 --> <%-- <cpm:position pos="分级管理员管理-角色管理"/> --%> <cpm:br /> <!-- 导航 结束 --> <!-- 功能描述 开始 --> <cpm:description content="管理员角色列表" /> <cpm:br /> <!-- 功能描述 结束 --> <!-- 页面查询 开始 --> <cpm:wrap> <table width="100%" border="0" align="left" cellspacing="1" cellpadding="0" class="mainForm_z"> <tr> <td class="divLeft"><span class="spanTxt">网段</span></td> <td style="padding-left: 10px;"><cpm:input type="text" id="keyword" name="keyword" value="${keyword}" /></td> </tr> <tr> <td colspan="4" style="padding-left: 10px; padding-top: 5px; padding-bottom: 5px;"> <cpm:btn category="mini" id="searchBtn" name="searchBtn" value="查询" forceSubmit="true" onclick="javascript: setPage();" />   </td> </tr> </table> </cpm:wrap> <cpm:br /> <cpm:wrap> <ec:table items="subList" var="item" action="${ctx}/console/admin/AdminManage.do?method=doSubList&keyword=${keyword}" view="footerView" form="presForm" filterable="false" cellspacing="0"> <ec:row highlightRow="true"> <ec:column property="rowCount" cell="rowCount" title="行号" width="5%" sortable="false" style="text-align: center;" /> <ec:column property="subnetAddress" title="网段" width="25%" sortable="false" style="padding-left: 5px;" /> <ec:column property="subnetAddress" title="选择" width="5%" style="text-align: center;" > <cpm:input type="checkbox" name="sub" value="${item.subnetAddress}"/> </ec:column> </ec:row> </ec:table> </cpm:wrap> <!-- 角色列表 结束 --> <cpm:br height="20px" /> </form> </div> </body> </html><%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@ include file="/commons/taglibs.jsp"%> <%@ include file="/commons/msg.jsp"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>${applicationScope['System.ConsoleWebName']}</title> <link href="${ctx}/console/styles/common/main.css" rel="stylesheet" type="text/css" /> <link href="${ctx}/console/styles/validation/validation_style.css" rel="stylesheet" type="text/css" /> <script src="${ctx}/console/scripts/jquery/${applicationScope['System.JQuery.JS']}" type="text/javascript"></script> <script src="${ctx}/console/scripts/validation/validation.js" type="text/javascript"></script> <script type="text/javascript" src="${ctx}/console/scripts/validation/validation-ui-utils.js"></script> <script src="${ctx}/console/scripts/sha1/sha1.js" type="text/javascript"></script> <link href="${ctx}/console/styles/extremetable/extremecomponents.css" rel="stylesheet" type="text/css"> <link href="${ctx}/console/styles/jqueryui/jquery-ui-1.7.1.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="${ctx}/console/scripts/extremetable/extremecomponents.js"></script> <script type="text/javascript" src="${ctx}/console/scripts/common/rafdialogutils.js"></script> <script type="text/javascript" src="${ctx}/console/scripts/jquery/jquery-ui-dialog-1.7.1.min.js"></script> <script type="text/javascript" src="${ctx}/console/scripts/validation/validation.js"></script> <script type="text/javascript"> function check() { var objform = new web_validator(); objform.add("adminName", "管理员姓名不能为空,长度必须大于等于2,小于等于10,且不能包含特殊符号!", "[notnull]&&[specialchar]&&[length,>=,2]&&[length,<=,10]"); objform.add("loginName", "管理员帐号不能为空,长度必须大于等于2,小于等于20,且不能包含特殊符号!", "[notnull]&&[specialchar]&&[length,>=,2]&&[length,<=,20]"); objform.add("commonPassword", "管理员登录口令不能为空,密码长度须在${adminPwdMinLength}~${adminPwdMaxLength}位之间,由英文字母a~z (区分大小写)、数字0~9、特殊字符至少两种组合组成,且不可与帐号相同!", "[notnull]&&([length,>=,${adminPwdMinLength}]&&[length,<=,${adminPwdMaxLength}])"); objform.add("confirmpassword", "管理员确认口令不能为空或您两次输入的登录口令不一致,请重新输入!", "[notnull]&&[equaltext,commonPassword]"); objform.add("roleId", "请选择管理员角色!", "[selected]"); var result = objform.check(); if (!result) { return false; } var confirm = false; var loginName = jQuery("#loginName").val(); if (/.*[\u4e00-\u9fa5]+.*$/.test(loginName)) { alert("管理员姓名不能为空,长度必须大于等于2,小于等于10,且不能包含特殊符号!"); return false; } var commonPassword = jQuery("#commonPassword").val(); if (commonPassword == loginName) { alert("管理员登录口令不可与帐号相同!"); return false; } if (/^.*?[\d]+.*$/.test(commonPassword) && /^.*?[A-Za-z].*$/.test(commonPassword)) confirm = true; else if (/^.*?[\d]+.*$/.test(commonPassword) && /^.*?[!@#$-].*$/.test(commonPassword)) confirm = true; else if (/^.*?[A-Za-z].*$/.test(commonPassword) && /^.*?[!@#$-].*$/.test(commonPassword)) confirm = true; if (!confirm) { alert("管理员登录口令不能为空,口令长度${adminPwdMinLength}~${adminPwdMaxLength}位,由英文字母a~z (区分大小写)、数字0~9、特殊字符至少两种组合组成,且不可与帐号相同!"); return false; } var passwd = hex_sha1(jQuery("#commonPassword").val()); jQuery("#commonPassword").val(passwd); jQuery("#password").val(passwd); jQuery("#confirmpassword").val(passwd); return true; } function getCAInfo() { var validator = new web_validator(); validator.add("caServerIp", "CA服务地址不能为空或格式不正确!", "[notnull] && [ipaddress]", trimObj); validator.add("caServerPort", "CA服务地址端口不能为空且只能是0~65535之间的数字!", "[notnull] && [scale,>,0] && [scale,<=,65535]", trimObj); validator.add("caServerName", "CA服务名不能为空!", "[notnull]", trimObj); validator.add("raunicode", "RA唯一编码不能为空!", "[notnull] && [length,<=,10]", trimObj); var result = validator.check(); if (result) { var caServerIp = jQuery("#caServerIp").val(); var caServerPort = jQuery("#caServerPort").val(); var caServerName = jQuery("#caServerName").val(); var isSSL = jQuery("#isSSL").val(); var raunicode = jQuery("#raunicode").val(); var url = "${ctx}/console/credential/caConfig.do?method=loadCAInfo&caServerIp=" + caServerIp + "&caServerPort=" + caServerPort + "&caServerName=" + caServerName + "&isSSL=" + isSSL + "&raunicode=" + raunicode + "&random=" + Math.random() + ""; popupDialog({ title : "获取CA信息", content : url, width : 600, height : 400, modal : true, overlay : true, buttons : { "确认并保存" : function() { var frameName = $(this).attr("name"); var frameObj = eval(frameName); if (frameObj.submitData()) { alert("保存CA配置成功!"); window.location = "${ctx}/console/credential/caConfig.do?method=caConfig&random=" + Math.random() + ""; $(this).dialog("close"); } }, "关闭窗口" : function() { $(this).dialog("close"); } } }); } } function chooseDept() { var url = "${ctx}/console/admin/AdminManage.do?method=doSubList"; popupDialog({ title : "选择网段", content : url, width : 600, height : 700, modal : true, overlay : true, buttons : { "确认" : function() { var frameName = $(this).attr("name"); var frameObj = eval(frameName); if (frameObj.submitValue()) { // 收集所有选中的网段地址 var selectedSubnets = []; $("input[name='sub']:checked").each(function() { selectedSubnets.push($(this).val()); }); // 将选中的网段地址设置到目标输入框 $("#subnetAddress").val(selectedSubnets.join(", ")); // 关闭对话框 $(this).dialog("close"); } }, "关闭" : function() { $(this).dialog("close"); } } }); } </script> </head> <body> <div class="wrap"> <form action="${ctx}/console/admin/AdminManage.do?method=doAdminAdd" method="post" name="presForm" onsubmit="return check();"> <!-- 导航 开始 --> <%-- <cpm:position pos="分级管理员管理-管理员管理-创建管理员"/> --%> <cpm:br /> <!-- 导航 结束 --> <!-- 功能描述 开始 --> <cpm:description content="带红色“<font color=red>*</font>”为必填项" /> <cpm:br /> <!-- 功能描述 结束 --> <!-- Tab部分 开始 --> <cpm:staticTabs> <cpm:staticTab title="创建管理员" /> </cpm:staticTabs> <!-- Tab部分 结束 --> <!-- 角色信息 开始 --> <cpm:wrap> <table width="100%" border="0" align="left" cellspacing="1" cellpadding="0" class="mainForm"> <tr class="tr_title"> <td style="padding-left: 5px; font-size: 12px; font-weight: bold;" colspan="2">基本配置</td> </tr> <tr> <td class="left">管理员帐号</td> <td class="right"><cpm:input type="text" id="loginName" name="loginName" required="true" value="${user.loginName}" readonly="${!empty user ? true : false}" /></td> </tr> <tr> <td class="left">管理员姓名</td> <td class="right"><cpm:input type="text" id="adminName" name="adminName" required="true" value="${user.userName}" readonly="${!empty user ? true : false}" /></td> </tr> <tr> <td class="left">登录口令</td> <td class="right"><cpm:input type="password" id="commonPassword" name="commonPassword" required="true" /> <cpm:input type="hidden" id="password" name="password" /> <font color="blue">  ( 注:密码长度${adminPwdMinLength}~${adminPwdMaxLength}位,由英文字母a~z (区分大小写)、数字0~9、特殊字符至少两种组合组成,且不可与帐号相同!)</font></td> </tr> <tr> <td class="left">确认口令</td> <td class="right"><cpm:input type="password" id="confirmpassword" name="confirmpassword" required="true" /> <font color="blue">  ( 注:两次输入密码相同时才会更改密码)</font></td> </tr> <tr class="tr_title"> <td style="padding-left: 5px; font-size: 12px; font-weight: bold;" colspan="2">权限信息</td> </tr> <tr> <td class="left">所属角色</td> <td class="right"><select name="roleId" id="roleId" class="txt"> <c:if test="${empty adminRoles}"> <option value="">未授权可管理的管理员角色</option> </c:if> <c:if test="${!empty adminRoles}"> <c:forEach items="${adminRoles}" var="item"> <option value="${item.id}">${item.roleName}</option> </c:forEach> </c:if> </select>  <span style="color: red;">*</span></td> </tr> <tr> <td class="left">网段</td> <td class="right" colspan="2"><cpm:input type="text" name="subnetAddress" id="subnetAddress" readonly="true" onclick="chooseDept();" /> <font color="gray">请选择网段</font></td> </tr> </table> </cpm:wrap> <cpm:br /> <!-- 角色信息 结束 --> <!-- 操作部分 开始 --> <cpm:wrap> <cpm:btn category="submit" name="submitBtn" value="保存" /> <cpm:btn category="return" name="returnBtn" value="返回" onclick="javascript: window.location = '${ctx}/console/admin/AdminManage.do?method=doAdminList';" /> </cpm:wrap> <!-- 操作部分 结束 --> <cpm:br height="20px" /> </form> </div> </body> </html> 第二个jsp页面点击确认选不到网段信息该咋该
最新发布
07-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值