输出导航条

本文介绍了一个基于Hibernate的导航条分页插件实现方法,该插件可以根据传入的Session对象、HQL查询语句及当前页数等参数生成导航条。插件支持单参数或多参数网页跳转,并能自动计算总页数与记录数。
[code]/**
* <p>
* 输出导航条
* </p>
*
* @author chenwei
* @param ses:org.hibernate.Session对象
* @param HQLsql:HQL语句
* @param page:当前页数
* @param pageSize:每页的记录数
* @param webpage:显示的页面[若带多个参数,可以这样写 a.jsp?r=XX&t=xx ]
* @return java.lang.String
* @throws SessionFactoryException
*/
public String turnpageBar(Session ses, String HQLsql, int page,
int pageSize, String webpage) {
// 总页数
int pageCount = 0;
// 总记录数
int recordCount = 0;

// 是否带多个参数
boolean moreParam = webpage.indexOf("?") == -1 ? false : true;

StringBuffer scriptStr = new StringBuffer();
scriptStr.append("<script language=\"javascript\">");
scriptStr.append("function change(objid){");
scriptStr.append("var p=document.getElementById(objid).value;");
if (!moreParam)
scriptStr.append("window.location=\"" + webpage + "?page=\"+p;");
else
scriptStr.append("window.location=\"" + webpage + "&page=\"+p;");
scriptStr.append("}</script>");

StringBuffer sb = new StringBuffer(scriptStr.toString());

Transaction tran = null;

tran = ses.beginTransaction();
java.util.List list = ses.createQuery(HQLsql).list();
tran.commit();
ses.close();
if (list != null && list.size() > 0)
recordCount = list.size();
if (recordCount == 0)
return "<font color=\"red\">没有记录</font>";
else {
pageCount = recordCount % pageSize == 0 ? recordCount / pageSize
: recordCount / pageSize + 1;
sb.append("第" + page + "页/共" + pageCount + "页  ");
sb.append("共" + recordCount + "条记录 每页" + pageSize
+ "条记录  ");
if (!moreParam)
sb.append("<a href=\"" + webpage + "?page=1\">首页</a> ");
else
sb.append("<a href=\"" + webpage + "&page=1\">首页</a> ");
if (page > 1) {
if (!moreParam)
sb.append("<a href=\"" + webpage + "?page=" + (page - 1)
+ "\">上一页</a> ");
else
sb.append("<a href=\"" + webpage + "&page=" + (page - 1)
+ "\">上一页</a> ");
} else
sb.append("上一页 ");
if (page < pageCount) {
if (!moreParam)
sb.append("<a href=\"" + webpage + "?page=" + (page + 1)
+ "\">下一页</a> ");
else
sb.append("<a href=\"" + webpage + "&page=" + (page + 1)
+ "\">下一页</a> ");
} else
sb.append("下一页 ");

if(!moreParam)
sb.append("<a href=\"" + webpage + "?page=" + pageCount
+ "\">尾页</a>  ");
else
sb.append("<a href=\"" + webpage + "&page=" + pageCount
+ "\">尾页</a>  ");

StringBuffer select = new StringBuffer("转到第");
select.append("<select id=\"sel\" onchange=\"change('sel')\">");
for (int i = 1; i <= pageCount; i++) {
if (page == i)
select.append("<option value=\"" + i
+ "\" selected=\"selected\">" + i + "</option>");
else
select.append("<option value=\"" + i + "\">" + i
+ "</option>");
}
select.append("</select>页");

sb.append(select.toString());
return sb.toString();
}
}[/code]
基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值