FreeMarker分页组件监听器
Posted 绿源2008
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FreeMarker分页组件监听器相关的知识,希望对你有一定的参考价值。
分页组件监听器/*
* 工程名:
* 包 名: com.companyName.dhm.iepgm.common.taglib
* 文 件名: PaginatedListener.java
* 版 权: Copyright (c) 2009 companyName All Rights Reserved.
* 描 述: 分页组件的监听器
* 修 改 人:
* 修改时间:
* 跟踪单号:
* 修改单号:
* 修改内容:
*/
package com.companyName.dhm.cbb.common.taglib;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.companyName.dhm.cbb.common.Constants;
import freemarker.template.Configuration;
import freemarker.template.ObjectWrapper;
import freemarker.template.TemplateExceptionHandler;
/**
*
* 分页组件监听器
*
* @author
* @version
* @since
*/
public class PaginatedListener implements ServletContextListener {
public void contextInitialized( ServletContextEvent servletContextEvent ) {
ServletContext context = servletContextEvent.getServletContext();
Configuration cfg = new Configuration();
cfg.setServletContextForTemplateLoading( context, "WEB-INF/templates");
cfg.setTemplateUpdateDelay(0);
cfg.setTemplateExceptionHandler(
TemplateExceptionHandler.html_DEBUG_HANDLER);
cfg.setObjectWrapper(ObjectWrapper.BEANS_WRAPPER);
cfg.setDefaultEncoding( Constants.PAGE_ENCODING.getStringValue() );
cfg.setOutputEncoding( Constants.PAGE_ENCODING.getStringValue() );
context.setAttribute( Constants.DHM_PAGINATED_COMPONENT.getStringValue(), cfg);
}
public void contextDestroyed(ServletContextEvent servletContextEvent ) {
ServletContext context = servletContextEvent.getServletContext();
context.removeAttribute( Constants.DHM_PAGINATED_COMPONENT.getStringValue() );
}
}
package com.companyName.dhm.cbb.common;
public enum Constants
{
/**-1表示查询色 *??的操作结*/
OPERATE_RESULT_ALL( "-1" ),
/**表示执行成功,弹出成功的提示*/
SUCCEED("1"),
/**表示执行失败,弹出失败的提示*/
FAILURED("0"),
/**默认情况不弹出提示框*/
NO_DIALOG( "2" ),
/**资源或栏目树,上移操*/
ORDER_UP( "UP" ),
/**资源或栏目树,下移操*/
ORDER_DOWN( "DOWN" ),
/**默认的分页时候每页显色 *0条记*/
DEFAULT_PAGE_SIZE( 10 ),
/**页面编码*/
PAGE_ENCODING("UTF-8"),
/**菜单收缩*/
MENU_COLLAPSED( 0 ),
/**菜单伸展*/
MENU_UNCOLLAPSED( 1 ),
/**消息主体长度:中*/
MESSAGE_LENGTH( 1024 ),
/**消息主体长度:英*/
MESSAGE_LENGTH_EN( 4000 ),
RANDOM("1"), UNRANDOM("0"), STATUS_NORMAL("1"), STATUS_LOCK(
"2"), STATUS_RESET("3"), RESETPASSWORD("888888"), COMMA(","), COMMACH(
"[,_,]+"), DATEFORMAT24("yyyy-MM-dd HH:mm"),
/**时间格式,含日期和时分秒*/
TIME_PATTERN( "yyyy-MM-dd HH:mm:ss" ),
/**英文字母、数字和下划色 */
LETTERS_AND_UNDERLINES( "^\\w+$" ),
/**中文字符和英文字色 */
CHINESE_AND_LETTERS( "(?:[\\u4e00-\\u9fa5]*\\w*\\s*)+$" ),
/**表示全局错误,并由struts2来跳转指定页色 */
GLOBAL_ERROR("global.error"),
/**表示全局错误,该全局错误是新打开色 *??浏览器窗口,然后由struts2来跳转到该错误页色 */
GLOBAL_ERROR_WINDOW("global.error.window"),
/**表示浏览文件夹节点信息,并由struts2来跳转指定页色 */
FOLDER_SITE("foler.site"),
/**表示浏览文件节点信息,并由struts2来跳转指定页色 */
PAGE_SITE("page.site"),
/**token名称,用户防止重复提色 */
STRUTS_TOKEN_NAME ( "struts.token.name" ),
/**DHM公共部分页面组件的标识符*/
DHM_PAGINATED_COMPONENT( "com.dhm.companyName.paginated.freemarker.configuration" ),
/********************************* 权限过滤器的常量定义 **************************************/
/**表示无权操作的提示页色 **/
NO_PRIVILEGE_URL("/common/noprivilege.jsp"),
/**表示无权操作的提示页面,页面内容为纯文本不含HTML标签,主要是用于弹出框的无权提示 */
NO_PRIVILEGE_URL_ONLY_TEXT("/common/noprivilege_text.jsp"),
/**系统登录首页*/
FIRST_LOGIN_URL("/"),
/**系统注销页面*/
LOGOUT_URL("/common/logout.jsp"),
LOGIN_ACTION( "/login.action" ),
/********************************* 拦截器的常量定义 **************************************/
/**IEPG后台日志错误代码前缀*/
ERROR_CODE_PREFIX( "system.error." ),
/**操作代码前缀*/
OPERATE_CODE_PREFIX( "system.operate.code." ),
/**错误内容*/
ERROR_MESSAGE( "errorMessage" ),
/**数据库连接超色 */
ERROR_CONNECT_DB( "BI-13003003:数据库连接超时异常" ),
/**数据库访问异色 */
ERROR_FETCH_DB( "BI-13003002:数据库访问异常" ),
/********************************* 系统中初始化角色以及欢迎页面的定色 ***********************/
/**表示超级管理员角*/
SUPER_ADMINISTRAOTR_ROLE(1),
/**表示管理员角*/
ADMINISTRAOTR_ROLE(3),
/**表示二次色 *??角色*/
DEVELOPER_ROLE(4),
/**运营管理员角色 */
MAINTAIN_ROLE(5),
/**运营人员角色的欢迎页色 */
OSS_WELCOME_URL ( "login/oss.jsp" ),
/**二次色 *??人员角色的欢迎页色 */
SECOND_WELCOME_URL ( "login/second.jsp" ),
/**系统超级管理员角色的欢迎页面*/
SYSTEM_WELCOME_URL ( "login/system.jsp" ),
/**其他角色的欢迎页色 */
OTHER_WELCOME_URL ( "login/other.jsp" ),
/********************************* 日志部分操作类型的定色 ***********************************/
/**操作类型*/
ALL_OPERATE_TYPE("0"),
/**1 表示“新增色 *操作类型*/
ADD_OPERATE_TYPE("1"),
/**2 表示“编辑色 *操作类型*/
UPDATE_OPERATE_TYPE("2"),
/**3 表示“删除色 *操作类型*/
DELETE_OPERATE_TYPE("3"),
/**4 表示“其他色 *操作类型*/
OTHER_OPERATE_TYPE( "4" ),
/**用于页面显示的操作类型:“新增色 **/
VIEW_ADD_OPERATE_TYPE("新增"),
/**用于页面显示的操作类型:“修改色 **/
VIEW_UPDATE_OPERATE_TYPE("修改"),
/**用于页面显示的操作类型:“删除色 **/
VIEW_DELETE_OPERATE_TYPE("删除"),
/**用于页面显示的操作类型:“其他色 **/
VIEW_OTHER_OPERATE_TYPE("其他"),
/**用于页面显示的操作结果:“成功色 **/
VIEW_OPERATE_RESULT_SUCCESS("成功"),
/**用于页面显示的操作结果:“失败色 **/
VIEW_OPERATE_RESULT_FAILURE("失败"),
/************************************ 公共错误码定色 *******************************************/
/**
* 13002001
* 程序错误,类型转换异常
*/
ERROR_CODE_CLASS_CAST(13002001L),
/**
* 13002002
* 程序错误,空指针异色 *
*/
ERROR_CODE_NULL_POINT(13002002L),
/**
* 13003001
* 数据库错色 *数据操作异常
*/
ERROR_CODE_OPERATOR_DATABASE(13003001L),
/**
* 13003002
* 数据库错色 *数据库访问异色 *
*/
ERROR_CODE_ACCESS_DATABASE(13003002L),
/**
* 13003003
* 数据库错色 *数据库连接超时异色 *
*/
ERROR_CODE_CONNECT_DATABASE(13003003L),
/********************************** 角色管理错误代码定义 ***************************************/
/** 13096001
* 添加角色异常
*/
ERROR_CODE_ADD_ROLE(13096001L),
/** 13096002
* 删除角色异常 */
ERROR_CODE_DELETE_ROLE(13096002L),
/** 13096003
* 编辑角色异常 */
ERROR_CODE_UPDATE_ROLE(13096003L),
/** 13096004
* 查询角色异常 */
ERROR_CODE_QUERY_ROLE(13096004L),
/** 13096005
* 浏览角色异常 */
ERROR_CODE_BROWSE_ROLE(13096005L),
/** 13096006
* 角色操作权限设定异常
*/
ERROR_CODE_ASSIGN_PRIVILEGE_TO_ROLE(13096006L),
/** 13096007
* 角色色 *??用户设定异常 */
ERROR_CODE_ASSIGN_USER_TO_ROLE(13096007L),
/** 13096008
* 角色色 *??用户异常 */
ERROR_CODE_ASSIGN_ROLE_TO_USER(13096008L),
/** 13096009
* 查询用户拥有的权限异色 **/
ERROR_CODE_QUERY_PRIVILEGES_FOR_USER(13096009L),
/** 13096010
* 查询角色赋予情况异常 */
ERROR_CODE_QUERY_ROLES_ASSIGNED(13096010L),
/** 13096011
* 查询色 *??权限异常 */
ERROR_CODE_QUERY_ALL_PRIVILEGES(13096011L),
/** 13096012
* 查询用户色 *??有的色 *??角色异常 */
ERROR_CODE_QUERY_ALL_ROLES_BY_USER(13096012L),
/** 13096013
* 查询角色赋予的所有用户异色 **/
ERROR_CODE_QUERY_ALL_USERS_BY_ROLE(13096013L),
/** 13096014
* 查询角色色 *??有的色 *??权限异常 */
ERROR_CODE_QUERY_ALL_PRIVILEGES_ASSIGNED_BY_ROLE(13096014L),
/** 13096015
* 查询未赋予该角色的所有用户异色 **/
ERROR_CODE_QUERY_ALL_USERS_UNASSIGNED_BY_ROLE(13096015L),
/** 13096016
* 批量插入用户和角色之间的关系异常 */
ERROR_CODE_BATCH_INSERT_USERS_AND_ROLE_RELATIONSHIP(13096016L),
/** 13096017
* 删除角色色 *??有的色 *??权限角色异常 */
ERROR_CODE_DELETE_PRIVIELEGES_ASSIGNED_BY_ROLE(13096017L),
/** 13096018
* 删除用户和角色之间的关系异常 */
ERROR_CODE_REMOVE_USER_AND_ROLE_RELATIONSHIP(13096018L),
/** 13096019
* 查询角色总数异常 */
ERROR_CODE_QUERY_ROLES_COUNT(13096019L),
/********************************** 日志管理误代码定色 ****************************************/
/** 13116001
* 查询日志详情异常 */
ERROR_CODE_QUERY_LOG_DETAIL(13116001L),
/** 13116002
* 查询日志异常 */
ERROR_CODE_QUERY_LOG ( 13116002L),
/********************************** 用户管理错误代码定义 ***************************************/
/** 13076001
* 新增用户信息异常*/
ERROR_CODE_ADD_USER(13076001L),
/**13076002
* 根据用户id删除用户信息异常*/
ERROR_CODE_DELETE_USER_BY_ID(13076002L),
/**13076003
* 修改用户信息异常*/
ERROR_CODE_UPDATE_USER(13076003L),
/**13076004
* 查询用户信息异常*/
ERROR_CODE_QUERY_USER(13076004L),
/**13076005
* 浏览用户信息异常*/
ERROR_CODE_BROWSE_USER(13076005L),
/**13076006
* 用户帐号锁定异常*/
ERROR_CODE_USER_LOCK(13076006L),
/**13076007
* 用户帐号解锁异常*/
ERROR_CODE_USER_RELOCK(13076007L),
/**13076008
* 根据登录用户查询用户信息异常*/
ERROR_CODE_QUERY_USER_BY_LOGINNAME(13076008L),
/**13076009
* 根据用户id删除用户角色关系异常*/
ERROR_CODE_DELETE_USER_ROLE_RELATIONSHIP_BY_ID(13076009L),
/**13076010
* 批量增加用户角色关系异常*/
ERROR_CODE_BATCH_INSERT_USERS_ROLE_RELATIONSHIP(13076010L),
/**13076011
* 修改个人信息异常*/
ERROR_CODE_EDIT_USER_PRO(13076011L),
/**13076012
* 修改密码异常*/
ERROR_CODE_UPDATE_PASSWORD(13076012L),
/**13076013
* 密码复位*/
ERROR_CODE_UPDATE_RESETPASSWORD(13076013L);
private byte byteValue;
public byte getByteValue()
{
return this.byteValue;
}
Constants(byte byteValue)
{
this.byteValue = byteValue;
}
private int intValue;
public int getIntValue()
{
return this.intValue;
}
/**
* @param intValue
*/
Constants(int intValue)
{
this.intValue = intValue;
}
private String strValue;
private long longValue;
public String getStringValue()
{
return this.strValue;
}
public long getLongValue()
{
return this.longValue;
}
Constants(String value)
{
this.strValue = value;
}
Constants(long errorCode)
{
this.longValue = errorCode;
}
public String toString()
{
return this.strValue;
}
}
dialogShow.js
function showText(dialogTitle,textCnt,dialogW,dialogH,imgNum,showTipImg)
{
if(showTipImg == true)
{
var img_select;
if(imgNum == 1) {
img_select = "<img src=‘../images/bg_tipsuccess.png‘/>";
}else if(imgNum == 2) {
img_select = "<img src=‘images/bg_tipsuccess.png‘/>";
}else {
img_select = "<img src=‘../images/bg_tipfailth.png‘/>";
}
}
else
{
var img_select = "";
}
textCnt = decodeURI( textCnt );
$("body").append("<div id=‘dialogbg‘></div><div id=‘dialog‘><h2 id=‘dialog_title‘>"+dialogTitle+"<p id=‘btn_closedialog‘></p></h2><div id=‘cnt_list‘><table wborder=‘0‘ cellspacing=‘0‘ cellpadding=‘0‘><tr><td valign=‘middle‘ id=‘text_color‘>"+img_select+textCnt+"</td></tr></table></div><div id=‘btn_list‘><input type=‘button‘ value=‘关闭‘ id=‘btn_dsure‘/></div></div>");
(imgNum == 1 || imgNum == 2)?$("#text_color").css({color:"#333"}):$("#text_color").css({color:"#C40000"});
$("body input,body button").blur();
$("#dialog").css({width:dialogW});
$("#dialog").css({height:dialogH});
var DW = $("#dialog").width();
var DH = $("#dialog").height()-77;
var webH = document.body.scrollHeight;
var webvH =document.documentElement.clientHeight + document.documentElement.scrollTop ;
var getH = (webH > webvH)?webH:webvH;
$("#dialogbg").height(getH + "px");
document.getElementById("dialog").style.left = (document.body.offsetWidth-$("#dialog").width()-2)/2 + "px";
document.getElementById("dialog").style.top = (document.documentElement.clientHeight-$("#dialog").height()-2)/2 + document.documentElement.scrollTop + "px";
$("#btn_list").css({width:DW});
$("#cnt_list").css({width:DW-5});
$("#cnt_list table").css({width:DW-20});
$("#cnt_list,#cnt_list table").css({height:DH});
$("#btn_closedialog,#btn_dsure").click(function()
{
var dialog = $( "#showSuccessDialog" );
dialog.val( ‘2‘ );
$("#dialogbg,#dialog").remove();
//如果是IE6浏览器,select标签才需要隐藏
if ( $.browser.msie && $.browser.version == ‘6.0‘ ) {
$("select").css({visibility:"visible"});
}
});
//如果是IE6浏览器,select标签才需要隐藏
if ( $.browser.msie && $.browser.version == ‘6.0‘ ) {
$("select").css({visibility:"hidden"});
$("#dialog select").css({visibility:"visible"});
}
moveWindow("dialog","dialog_title");
}
function showPage(dialogTitle,pageName,dialogW,dialogH)
{
$("body").append("<div id=‘dialogbg‘></div><div id=‘dialog‘><h2 id=‘dialog_title‘>"+dialogTitle+"<p id=‘btn_closedialog‘></p></h2><iframe name=‘framelist‘ id=‘framelist‘ frameborder=‘0‘ src="+pageName+" height=‘auto‘></iframe><div id=‘btn_list‘><input type=‘button‘ value=‘关闭‘ id=‘btn_dsure‘/></div></div>");
//var gH = top.frames["framelist"].document.body.scrollHeight;
//alert(gH);
$("input,body button").blur();
$("#dialog").css({width:dialogW});
$("#dialog").css({height:dialogH});
var DW = $("#dialog").width();
var DH = $("#dialog").height()-75;
var webH = document.body.scrollHeight;
var webvH =document.documentElement.clientHeight + document.documentElement.scrollTop ;
var getH = (webH > webvH)?webH:webvH;
$("#dialogbg").height(getH + "px");
document.getElementById("dialog").style.left = (document.body.offsetWidth-$("#dialog").width()-2)/2 + "px";
document.getElementById("dialog").style.top = (document.documentElement.clientHeight-$("#dialog").height()-2)/2 + document.documentElement.scrollTop + "px";
$("#btn_list").css({width:DW});
$("#cnt_list").css({width:DW});
$("#framelist").css({padding:"5px",overflow:"hidden"});
$("#framelist").attr("width",DW-10);
$("#framelist").attr("height",DH-10);
//$("#cnt_list iframe").attr("width",DW);
$("#btn_closedialog,#btn_dsure").click(function()
{
var dialog = $( "#showSuccessDialog" );
dialog.val( ‘2‘ );
$("#dialogbg,#dialog").remove();
//如果是IE6浏览器,select标签才需要隐藏
if ( $.browser.msie && $.browser.version == ‘6.0‘ ) {
$("select").css({visibility:"visible"});
}
});
//如果是IE6浏览器,select标签才需要隐藏
if ( $.browser.msie && $.browser.version == ‘6.0‘ ) {
$("select").css({visibility:"hidden"});
$("#dialog select").css({visibility:"visible"});
}
moveWindow("dialog","dialog_title");
return false;
}
function showPageByWithScroll(dialogTitle,pageName,dialogW,dialogH)
{
$("body").append("<div id=‘dialogbg‘></div><div id=‘dialog‘><h2 id=‘dialog_title‘>"+dialogTitle+"<p id=‘btn_closedialog‘></p></h2><iframe name=‘framelist‘ id=‘framelist‘ frameborder=‘0‘ src="+pageName+" height=‘auto‘></iframe><div id=‘btn_list‘><input type=‘button‘ value=‘关闭‘ id=‘btn_dsure‘/></div></div>");
//var gH = top.frames["framelist"].document.body.scrollHeight;
//alert(gH);
$("input,body button").blur();
$("#dialog").css({width:dialogW});
$("#dialog").css({height:dialogH});
var DW = $("#dialog").width();
var DH = $("#dialog").height()-75;
var webH = document.body.scrollHeight;
var webvH =document.documentElement.clientHeight + document.documentElement.scrollTop ;
var getH = (webH > webvH)?webH:webvH;
$("#dialogbg").height(getH + "px");
document.getElementById("dialog").style.left = (document.body.offsetWidth-$("#dialog").width()-2)/2 + "px";
document.getElementById("dialog").style.top = (document.documentElement.clientHeight-$("#dialog").height()-2)/2 + document.documentElement.scrollTop + "px";
$("#btn_list").css({width:DW});
$("#cnt_list").css({width:DW});
var getua = navigator.userAgent;
if(/Gecko/.test(getua))
{
$("#framelist").css({padding:"5px",overflow:"scroll","overflow-x":"hidden"});
}
else
{
$("#framelist").css({padding:"5px",overflow:"hidden"});
}
$("#framelist").attr("width",DW-10);
$("#framelist").attr("height",DH-10);
//$("#cnt_list iframe").attr("width",DW);
$("#btn_closedialog,#btn_dsure").click(function()
{
var dialog = $( "#showSuccessDialog" );
dialog.val( ‘2‘ );
$("#dialogbg,#dialog").remove();
//如果是IE6浏览器,select标签才需要隐藏
if ( $.browser.msie && $.browser.version == ‘6.0‘ ) {
$("select").css({visibility:"visible"});
}
});
//如果是IE6浏览器,select标签才需要隐藏
if ( $.browser.msie && $.browser.version == ‘6.0‘ ) {
$("select").css({visibility:"hidden"});
$("#dialog select").css({visibility:"visible"});
}
moveWindow("dialog","dialog_title");
return false;
}
function moveWindow(windowID,windowHandleID)
{
var box = document.getElementById(windowID);
var boxHandle = document.getElementById(windowHandleID);
var mx, my, ox, oy;
function e(event){
if( ! event){
event = window.event;
event.target = event.srcElement;
event.layerX = event.offsetX;
event.layerY = event.offsetY;
}
event.mx = event.pageX || event.clientX + document.body.scrollLeft;
event.my = event.pageY || event.clientY + document.body.scrollTop;
return event;
}
boxHandle.onmousedown = moveEvent;
function moveEvent(event){
event = e(event);
ox = parseInt(box.offsetLeft);
oy = parseInt(box.offsetTop);
mx = event.mx;
my = event.my;
boxHandle.onmousemove = moveBox;
boxHandle.onmouseup = stopBox;
}
function moveBox(event){
event = e(event);
box.style.left = ox + event.mx - mx + "px";
box.style.top = oy + event.my - my + "px";
}
function stopBox(event){
//alert(‘‘);
event = e(event);
ox = parseInt(box.offsetLeft);
oy = parseInt(box.offsetTop);
mx = event.mx ;
my = event.my ;
boxHandle.onmousemove = boxHandle.onmouseup = null;
}
}
/**去掉字符串前后的空格*/
String.prototype.trim = function(){
// 用正则表达式将前后空格
// 用空字符串替代。
return this.replace(/(^\s*)|(\s*$)/g, "");
};
/**显示成功的窗口*/
function showSuccessWindow( successMessageContent, failuredMessageContent ) {
var dialog = $( "#showSuccessDialog" );
var show = dialog.val();
if ( show != ‘0‘ && show != ‘2‘ ) {
showText(‘提示信息‘, successMessageContent,400,200,1,true);
$("#dialogbg,#dialog").fadeOut(5000,function(){
$(this).remove();
dialog.val( ‘2‘ );
$("select").css({visibility:"visible"});
$("#dialog select").css({visibility:"visible"});
});
}
if ( show != ‘1‘ && show != ‘2‘ ) {
showText(‘提示信息‘, failuredMessageContent,400,200,0,true);
$("#dialogbg,#dialog").fadeOut(5000,function(){
dialog.val( ‘2‘ );
$(this).remove();
$("select").css({visibility:"visible"});
$("#dialog select").css({visibility:"visible"});
});
}
}
/**显示成功的窗口*/
function showSuccessWindowLogin( successMessageContent, failuredMessageContent ) {
var dialog = $( "#showSuccessDialog" );
var show = dialog.val();
if(typeof show != "undefined" && show.length != 0){
if ( show != ‘0‘ && show != ‘2‘ ) {
showText(‘提示信息‘, successMessageContent,400,200,2,true);
$("#dialogbg,#dialog").fadeOut(3000,function(){dialog.val( ‘2‘ );$(this).remove();});
}
if ( show != ‘1‘ && show != ‘2‘ ) {
showText(‘提示信息‘, failuredMessageContent,400,200,0,true);
$("#dialogbg,#dialog").fadeOut(3000,function(){dialog.val( ‘2‘ );$(this).remove();});
}
}
}
/**显示失败的窗口*/
function showFailuredWindow( failuredMessageContent ) {
var dialog = $( "#showSuccessDialog" );
var show = dialog.val();
if ( show != ‘1‘ && show != ‘2‘ ) {
showText(‘提示信息‘, failuredMessageContent,400,200,0,true);
$("#dialogbg,#dialog").fadeOut(8000,function(){dialog.val( ‘2‘ );$(this).remove();});
}
}
/**对>解码成>,然后在用encodeURI进行统一编码。*/
function decode( str ) {
if ( str == null ) {
return null;
}
str = str.replace(/\>/g, ">");
str = str.replace(/\</g, "<");
str = str.replace(/\&/g, "&");
return str;
}
/**弹出角色详情的对话框*/
function showRoleDetailDialog( link, messageTip ) {
var id = link.id;
link.href = "###";
var table = document.getElementById( "roleList" ).rows[ id ];
var roleName = link.innerHTML.trim();
var queryString = ‘role.roleName=‘+roleName+"&noPrivilegeOnlyText=true";
//queryString = encodeURI( queryString);
showPage( messageTip,‘../RoleManage/BrowseRoleDetail.action?‘+queryString, 610, 260 );
}
/**弹出用户详情的对话框*/
function showAdminDetailDialog( link, messageTip ) {
var id = link.id;
link.href = "###";
var table = document.getElementById( "adminsList" ).rows[ id ];
var loginName = table.cells[1].innerHTML.trim();
var userName = link.innerHTML.trim();
var status = table.cells[3].innerHTML.trim();
var roleList = table.cells[4].innerHTML.trim();
var email = table.cells[5].innerHTML.trim();
var phone = table.cells[6].innerHTML.trim();
var buffer = new StringBuffer();
buffer.append( "admin.loginName=" );
buffer.append( loginName );
buffer.append( "&admin.username=" );
buffer.append( decode(userName) );
buffer.append( "&admin.status=" );
buffer.append( status );
buffer.append( "&admin.role=" );
buffer.append( roleList );
buffer.append( "&admin.email=" );
buffer.append( email );
buffer.append( "&admin.phone=" );
buffer.append( phone );
buffer.append( "&noPrivilegeOnlyText=true" );
var queryString = encodeURI( buffer.toString() );
showPage(messageTip,‘../admin/adminView.action?‘+queryString, 610, 300 );
}
/**弹出日志详情的对话框*/
function showLogDetailDialog( link, messageTip ) {
var id = link.id;
link.href = "###";
var table = document.getElementById( "logList" ).rows[ id ];
var operateDate = table.cells[0].innerHTML.trim();
var operator = table.cells[1].innerHTML.trim();
var operateModule = table.cells[2].innerHTML.trim();
var operateObject = table.cells[3].innerHTML.trim();
var ipAddr = table.cells[6].innerHTML.trim();
var operateType = table.cells[7].innerHTML.trim();
var operateResult = table.cells[8].innerHTML.trim();
var operateDesc = table.cells[9].innerHTML.trim();
var logId = table.cells[10].innerHTML.trim();
var buffer = new StringBuffer();
buffer.append( "logBean.logId=" );
buffer.append( logId );
buffer.append( "&noPrivilegeOnlyText=true" );
buffer.append( "&errorPageWindow=true" );
var queryString = encodeURI( buffer.toString() );
showPage( messageTip,‘../SysManage/BrowseLogDetail.action?‘ + queryString, 610, 420);
}
/** firefox 不支持innerText 方法 ,要支持要加一段脚本 */
function isIE(){
if (window.navigator.userAgent.toLowerCase().indexOf("msie")>=1)
return true;
else
return false;
}
if(!isIE()){
HTMLElement.prototype.__defineGetter__("innerText",
function(){
var anyString = "";
var childS = this.childNodes;
for(var i=0; i<childS.length; i++) {
if(childS[i].nodeType==1)
//anyString += childS[i].tagName=="BR" ? "\n" : childS[i].innerText;
anyString += childS[i].innerText;
else if(childS[i].nodeType==3)
anyString += childS[i].nodeValue;
}
return anyString;
}
);
HTMLElement.prototype.__defineSetter__("innerText",
function(sText){
this.textContent=sText;
}
);
}
/**定义StringBuffer类*/
function StringBuffer()
{
this._strings = [];
if(arguments.length==1)
{
this._strings.push(arguments[0]);
}
};
StringBuffer.prototype.append = function(str)
{
this._strings.push(str);
return this;
};
StringBuffer.prototype.toString = function()
{
return this._strings.join("");
};
/* 返回长度 */
StringBuffer.prototype.length = function()
{
var str = this._strings.join("");
return str.length;
};
paginated.ftl
<#if page.totalPages != 0 >
<form action="${page.url}" method="post" id="page_queryActionForm_${page.id}" onsubmit="return paginated_form_submit_${page.id}(this, ${page.id});">
<#list page.hiddenParams.keySet() as key>
<#assign item = page.hiddenParams[key]>
<input type="hidden" name="${key}" value="${item}" />
</#list>
<div class="right">
<img src="../images/in_r.jpg" width="5" height="30" />
</div>
<div class="page">
<div id="paginated_total_page_id"> ${page.totalPagesLabel}${page.currentPage?c}/${page.totalPages?c}</div>
<div>
<#if page.currentPage == page.totalPages>
<#if page.totalPages == 1>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;"><<</a>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="#" class="act">></a>
<a href=‘${page.url}?${page.queryString}¤tPage=1&pageSize=${page.pageSize}‘ class="act">>></a>
<#else>
<a href=‘${page.url}?${page.queryString}¤tPage=1&pageSize=${page.pageSize}‘ class="act"><<</a>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage-1}&pageSize=${page.pageSize}" class="act"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;">></a>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;">>></a>
</#if>
<#else>
<#if page.currentPage == 1 >
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;"><<</a>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage+1}&pageSize=${page.pageSize}" class="act">></a>
<a href=‘${page.url}?${page.queryString}¤tPage=${page.totalPages}&pageSize=${page.pageSize}‘ class="act">>></a>
<#elseif page.currentPage == page.totalPages>
<a href=‘${page.url}?${page.queryString}¤tPage=1&pageSize=${page.pageSize}‘ class="act"><<</a>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage-1}&pageSize=${page.pageSize}" class="act"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;">></a>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;">>></a>
<#else>
<a href=‘${page.url}?${page.queryString}¤tPage=1&pageSize=${page.pageSize}‘ class="act"><<</a>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage-1}&pageSize=${page.pageSize}" class="act"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage+1}&pageSize=${page.pageSize}" class="act">></a>
<a href=‘${page.url}?${page.queryString}¤tPage=${page.totalPages}&pageSize=${page.pageSize}‘ class="act">>></a>
</#if>
</#if>
</div>
<div>${page.jumpLabel}<input type="text" name="currentPage" value="${page.currentPage?c}" size="2" class="input" id="page_currentPage_${page.id}"/></div>
<div>
<input type="image" src="../images/lisure.jpg" class="but" id="page_queryActionButton_${page.id}" onclick="paginated_button_submit_${page.id}(this, ${page.id});"/>
</div>
</div>
<div class="page">
<div>${page.pageSizeLabel}</div>
<div id="con_psbox">
<select class="page_selectbox" name="pageSize" id="paginated_pageSize_${page.id}" onchange="paginated_pageSize_change_${page.id}( this, ${page.id} );">
<#list page.pageSelected as pageSize>
<option value="${pageSize}" <#if pageSize?eval == page.pageSize>selected="selected"</#if>>${pageSize}</option>
</#list>
</select> <span>${page.pageSizeLabelPostfix}</span>
</div>
</div>
<div class="page">
<div>${page.totalRowlLabel}${page.totalRows?c}${page.pageSizeLabelPostfix}</div>
</div>
</form>
<script type="text/javascript" src="../js/dialogShow.js"></script>
<script type="text/javascript">
function isNaturalNumber( value ) {
if ( value == null ) {return false;}
if ( value == ‘‘ || value == null ) {return false;}
if (/^[0-9]+$/.test( value ) && ( value > 0)) {
return true;
} else {
return false;
}
}
function paginated_pageSize_change_${page.id}(select,id) {
$( "#page_currentPage_" + id ).val(1);
var form = $("#page_queryActionForm_" + id);
$( form ).submit();
}
function paginated_button_submit_${page.id}( button,id ) {
var input = $( "#page_currentPage_" + id ).val();
var form = $("#page_queryActionForm_" + id);
if ( !isNaturalNumber (input) ) {
showText(‘信息提示‘,‘当前页应该是自然数,请重新输入!‘,400,200,0,false);
form[0].onsubmit = function(){ return false; };
} else {
var div = $( button ).parent().prev();
var totalLabel = div.prev().prev().html();
var totalPage = totalLabel.split( "/" )[1];
if ( parseInt(input) > parseInt(totalPage) ) {
showText(‘信息提示‘,‘当前页不能大于总页数,请重新输入!‘,400,200,0,false);
form[0].onsubmit = function(){ return false; };
} else {
form[0].onsubmit = function(){ return true; };
}
}
}
function paginated_form_submit_${page.id}( f, id ) {
var input = $( "#page_currentPage_" + id ).val();
var form = $( f );
if ( !isNaturalNumber (input) ) {
showText(‘messageTip‘,‘当前页应该是自然数,请重新输入!‘,400,200,0,false);
return false;
} else {
var div = $( "#paginated_total_page_id" );
var totalLabel = div.html();
var totalPage = totalLabel.split( "/" )[1];
if ( parseInt(input) > parseInt(totalPage) ) {
showText(‘信息提示‘,‘当前页不能大于总页数,请重新输入!‘,400,200,0,false);
return false;
} else {
return true;
}
}
}
</script>
<#else>
<div class="right">
<img height="30" width="5" src="../images/in_r.jpg"/>
</div>
</#if>
package com.companyName.dhm.cbb.common;
public enum Constants
{
/**-1表示查询色 *??的操作结*/
OPERATE_RESULT_ALL( "-1" ),
/**表示执行成功,弹出成功的提示*/
SUCCEED("1"),
/**表示执行失败,弹出失败的提示*/
FAILURED("0"),
/**默认情况不弹出提示框*/
NO_DIALOG( "2" ),
/**资源或栏目树,上移操*/
ORDER_UP( "UP" ),
/**资源或栏目树,下移操*/
ORDER_DOWN( "DOWN" ),
/**默认的分页时候每页显色 *0条记*/
DEFAULT_PAGE_SIZE( 10 ),
/**页面编码*/
PAGE_ENCODING("UTF-8"),
/**菜单收缩*/
MENU_COLLAPSED( 0 ),
/**菜单伸展*/
MENU_UNCOLLAPSED( 1 ),
/**消息主体长度:中*/
MESSAGE_LENGTH( 1024 ),
/**消息主体长度:英*/
MESSAGE_LENGTH_EN( 4000 ),
RANDOM("1"), UNRANDOM("0"), STATUS_NORMAL("1"), STATUS_LOCK(
"2"), STATUS_RESET("3"), RESETPASSWORD("888888"), COMMA(","), COMMACH(
"[,_,]+"), DATEFORMAT24("yyyy-MM-dd HH:mm"),
/**时间格式,含日期和时分秒*/
TIME_PATTERN( "yyyy-MM-dd HH:mm:ss" ),
/**英文字母、数字和下划色 */
LETTERS_AND_UNDERLINES( "^\\w+$" ),
/**中文字符和英文字色 */
CHINESE_AND_LETTERS( "(?:[\\u4e00-\\u9fa5]*\\w*\\s*)+$" ),
/**表示全局错误,并由struts2来跳转指定页色 */
GLOBAL_ERROR("global.error"),
/**表示全局错误,该全局错误是新打开色 *??浏览器窗口,然后由struts2来跳转到该错误页色 */
GLOBAL_ERROR_WINDOW("global.error.window"),
/**表示浏览文件夹节点信息,并由struts2来跳转指定页色 */
FOLDER_SITE("foler.site"),
/**表示浏览文
以上是关于FreeMarker分页组件监听器的主要内容,如果未能解决你的问题,请参考以下文章