求页面分页代码(hibernate-3.1.3)

ScholarJia 2006-03-29 02:54:47
<%@page contentType="text/html;charset=gb2312"%>
<%@include file="public.jsp"%>


<%
//参数说明
//数据查询条件,值域:timeout/allorder
String condition=getString(request,"condition","allorder");
%>
<%
ObjectSession objectSession=null;
List list_data=null;
new ObjectSessionFactory().close();

try{
objectSession = new ObjectSessionFactory().open();
list_data=objectSession.find("from User");
}catch(Exception e){
System.out.println(e);
}

%>

<style type="text/css">
<!--
.style5 {font-size: 13px; }
-->
</style>

<table width="97%" height="22%" border="0" >
<tr height="8%" >
<th width="10%"scope="col"><div align="left"><a href="./user_list.jsp">人员信息</a></div></th>
<th width="10%"scope="col"><div align="left"><a href="#" onclick="parent.detailFrame.location.replace('./user_new.jsp')">新增人员</a></div></th>
<th width="11%"scope="col"><a href="./group_list.jsp">群组信息</a></th>
<th width="11%"scope="col"><a href="#" onclick="parent.detailFrame.location.replace('./group_new.jsp')">新增群组</a></th>
<th width="12%"scope="col"> </th>
<th width="9%"scope="col"> </th>
<th width="9%"scope="col"> </th>
<th width="9%"scope="col"> </th>
<th width="9%"scope="col"> </th>
</tr>
<tr>
<th height="88" colspan="10" scope="row"><table width="100%" border="0" cellspacing="1" bgcolor="#666666">
<tr bgcolor="#CCCCCC">
<th width="122" height="16" scope="col"> <div align="left" class="style5">
<div align="center">姓名</div>
</div></th>
<th width="131" scope="col"><div align="left" class="style5">
<div align="center">用户</div>
</div></th>
<th width="105" scope="col"><div align="left" class="style5">
<div align="center">群组</div>
</div></th>
<th width="149" scope="col"><div align="left" class="style5">
<div align="center">手机号码</div>
</div></th>
<th width="115" scope="col"><div align="left" class="style5">邮件地址</div></th>
<th width="177" scope="col">
<div align="center" class="style5">
操作
</div></th>
</tr>
<%
for(int i=0;list_data!=null&&i<list_data.size();i++){
User user=(User)list_data.get(i);
Iterator it=null;
try{
Set groupSet=user.getGroups();
it=groupSet.iterator();
}catch(Exception e){
it=null;
}
String groupInfo="";
for(int k=0;it!=null&&it.hasNext();){
groupInfo+=" "+((Group)it.next()).getName();
}


%>
<tr bgcolor="#FFFFFF">
<th scope="row"><div align="left"><%=getISO8859(user.getName())%></div></th>
<td><div align="left"><%=getISO8859(user.getUsername())%></div></td>
<td><%=getISO8859(groupInfo)%></td>
<td><%=getISO8859(user.getMobileTel())%></td>
<td><%=getISO8859(user.getEmail())%></td>
<td class="style5"><a href="#" onclick="parent.detailFrame.location.replace(this.url)" url="detailForm.jsp?id=<%=user.getForm().getId()%>">查看明细</a></td>
</tr>
<%}%>
</table></th>
</tr>
</table>
...全文
156 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ScholarJia 2006-03-29
  • 打赏
  • 举报
回复
谢谢了,不过数据库部分要用hibernate-3.1.3解决?
eidolon_warrior 2006-03-29
  • 打赏
  • 举报
回复

//分页显示结果用参数
int EveryPage=10;//每页显示的记录数;
int OnPage=1; //当前显示的页数;
int Total=0;//记录的总数;
int TotalPage=0;//记录的总页数;
java.util.Vector result = (java.util.Vector)v.get(1);
System.out.println("v.get(1)"+result.toString()+"\n");
Total = result.size();
if(Total%EveryPage==0)
TotalPage=Total/EveryPage;
else
TotalPage=Total/EveryPage+1;
//取得文本框输入的值;
String Pages=request.getParameter("Pages");

if(Pages!=null)
{
OnPage=Integer.parseInt(Pages);//把Pages转换为整型;
//根据输入的值,判断应显示的页;
if(OnPage>TotalPage)
{
OnPage=TotalPage;
}
else if(OnPage<=0)
{
OnPage=1;
}
}
System.out.println("nnd is over!");

%>
<link href="/style.css" rel="stylesheet" type="text/css">

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr align="center" valign="middle">
<td height="13" colspan="3"><div align="center"></div></td>
</tr>

<tr>


<td width="82%" align="center" valign="top"><div align="center">
<!--
<form action="" method="post" name="register" target="_self" id="register">
-->
<table width="100%" border="0" cellpadding="3" cellspacing="1">
<tr bgcolor="#6595D6">
<th height="20" colspan="5" scope="col"><span class="style3">标准浏览</span></th>
</tr>
<tr bgcolor="#ACC7EA">
<td width="35%" height="20" bgcolor="#ACC7EA"><div align="center" class="style12">标准编号</div></td>
<td width="35%" bgcolor="#ACC7EA"><div align="center" class="style12">标准名称</div></td>
<td width="10%"><div align="center"></div></td>
<td width="10%"> </td>
<td width="10%"> </td>
</tr>
<%
for(int i=1;i<=EveryPage;i++)
{
int j = (OnPage-1)*EveryPage+(i-1);
SchemaInfoBean mybean = new SchemaInfoBean();
if(j < Total)
{
mybean = (SchemaInfoBean)result.get(j);
}
else
{
break;
}

%>

<tr bgcolor="#EEEEEE">
<td height="19" bgcolor="#EEEEEE"><%=mybean.getSchemaID()%></td>
<td bgcolor="#EEEEEE"><%=mybean.getSchemaName()%></td>
<td><div align="center" class="style2"><a href=ViewSchema.jsp?SchemaID=<%=mybean.getSchemaID()%>>查看</a></div></td>
<td><div align="center" class="style2"><a href=EditSchInfo.jsp?SchemaID=<%=mybean.getSchemaID()%>>修改</a></div></td>
<td><div align="center" class="style2"><a href=DelSch.jsp?SchemaID=<%=mybean.getSchemaID()%> onclick='javascript:if (confirm("您确定要删除此记录吗?")) {""} else {return false}'>删除</a></div></td>
</tr>
<% }

%>
<tr>
<form action="BrowseSchema.jsp" method="POST">
<th colspan="3"><div align="left">标准查询
<input name="PM" type="text"size="18" height="20">
<input type="submit" name="query" value="查询" size="20" ></div></th>
</form>

<th colspan="2">
<%
for(int i=1;i<=TotalPage;i++)
{
String p = String.valueOf(i);
%>
<a href=BrowseSchema.jsp?PM=<%=pm%>&Pages=<%=p%>><%= p %></a>
<%
}%>
</th>


</tr>


</table>
<!--
</form>
-->
<p> </p>
</div></td>
</tr>
<tr>
<td colspan="3" valign="top"> </td>
</tr>
</table>

MyBatis 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。后来项目结束了,我也没写总结文档。已经过去好久了。但最近突然又对这个ORM 工具感兴趣。因为接下来自己的项目中很有可能采用这个ORM工具。所以在此重新温习了一下 mybatis, 因此就有了这个系列的 mybatis 教程. 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfactory 产生 session 3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为 MyBaits 的 dynamic web project 1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。 2. 将 mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到 web工程的lib目录. 3. 创建mysql 测试数据库和用户表,注意,这里采用的是 utf-8 编码 创建用户表,并插入一条测试数据 程序代码 程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'
第一章 安装配置开发环境 18 1.1系统需 18 1.2 JDK 的下载,安装和配置(可选) 18 1.2.1下载JDK 18 1.2.2 安装JDK 23 1.2.3 配置环境变量(可选) 24 1.2.4 JDK 6 中文文档下载地址(ZIP,HTML,CHM)(可选) 26 1.3 Tomcat服务器的下载,安装和运行(可选) 26 1.4 JBoss 服务器的下载,安装和运行(可选) 28 1.5 MySQL 5数据库服务器下载,安装和运行(可选) 31 1.5.1 MySQL 5 官方版本的下载和安装,运行 32 1.5.2 MySQL 5绿色版的下载安装和运行 32 1.5.2.1 下载 32 1.5.2.2 用法图解 33 1.6 Eclipse 3.3的下载,安装和运行 35 1.7 MyEclipse 6的下载,安装和运行 37 1.7.1下载 37 1.7.2 安装 38 1.7.2.1 ALL in ONE 版本的安装 38 1.7.2.2 插件(PLUG-IN) 版本的安装 39 1.7.2.3 使用ALL In ONE 版本制作MyEclipse绿色版 40 1.7.3 运行 41 1.8 Eclipse运行出错的疑难解答 41 1.9 使用高级进程管理器来管理Java进程 44 1.10小结 45 第二章 开发第一个Java应用程序 46 2.1 介绍 46 2.2 手工编写,编译并运行Java程序 46 2.3 使用Eclipse/MyEclipse来编写,编译并运行Java程序 47 2.4小结 50 第三章 Eclipse 的基础概念,配置和使用 51 3.1界面布局 51 3.1.1菜单 51 3.1.2 工具栏 51 3.1.3 透视图(Perspective)切换器 52 3.1.4 视图(View) 53 3.1.5 上下文菜单(Context Menu) 55 3.1.6 状态栏(Status Bar) 55 3.1.7 编辑器(Editor) 55 3.2 常见概念和操作 56 3.2.1 项目(Project) 56 3.2.2工作区(Workspace) 56 3.2.3 导入、导出Java项目 56 3.2.3.1 导入项目 56 3.2.3.2 导出项目 57 3.2.4快速修正代码错误 57 3.2.5优化导入列表 58 3.2.6添加,修改,删除JRE 58 3.2.7查看类定义,层次和源码 58 3.2.8查找类文件(Open Type) 59 3.2.9源码目录,输出路径,Library和编译器版本设置 59 3.2.10生成getter和setter 方法 60 3.2.11格式化源代码 61 3.2.12注释和取消注释 61 3.2.13手工和自动编译 61 3.2.14直接粘贴Java源码为类文件 61 3.2.15复制项目中的文件 61 3.2.16断点和调试器 62 3.2.17快速加入、删除jar包到Build Path 63 3.2.18查看当前类被哪些类引用 63 3.2.19设置编辑器字体,颜色和显示行号 63 3.2.20 Link文件 64 3.2.21安装插件 65 3.2.22获取帮助和阅读帮助文档 65 3.2.23 CVS团队源代码管理(在线阅读) 66 3.2.24 修改文件的字符编码 66 3.3小结 66 第四章 用MyEclipse Database Explorer管理数据库 67 4.1功能一览 67 4.2使用MyEclipse Database Explorer透视图 69 4.2.1介绍 69 4.2.2连接到MyEcipse Derby数据库 70 4.2.3切换到MyEclipse Database Explorer透视图 70 4.2.4打开数据库连接 71 4.2.5关闭数据库连接 72 4.2.6浏览数据库结构 72 4.2.7编辑和执行SQL代码段 73 4.2.8生成实体关系(ER)图 75 4.2.9编辑表格数据 76 4.2.10清空表格数据 77 4.2.11创建和删除表格 77 4.2.12创建和删除外键 78 4.2.13创建和删除索引 79 4.2.14生成SQL语句 80 4.2.15建立到MySQL数据库的连接 81 4.3小结 82 4.4参考资料 82 第五章 开发JDBC应用 83 5.1系统需 83 5.2创建数据库表格 83 5.3创建Java项目 84 5.4添加JDBC驱动到Build Path 85 5.5编写JDBC访问类 85 5.6小结 89 5.7参考资料 89 5.7.1 网页 89 5.7.2 JDBC 要点 89 第六章 管理应用服务器 95 6.1简介 95 6.2 Servers 视图 95 6.3浏览应用服务器连接器 96 6.4配置连接器 97 6.4.1第1步 配置服务器的安装信息 98 6.4.2第2步 启用连接器 98 6.4.3第3步 选择启动服务器时候所用的JDK 98 6.4.3.1可选操作:添加 JVM 99 6.5发布并运行Java EE项目 100 6.5.1 Java EE 项目的发布类型 100 6.5.1.1 散包发布 100 6.5.1.2 打包发布 100 6.5.2向服务器发布应用 100 6.5.2.1打开发布对话框 100 6.5.2.2点击Add按钮启动新建发布对话框并完成发布 102 6.6应用服务器的管理和调试 103 6.6.1启动服务器 103 6.6.2监控服务器启动过程 103 6.6.3停止服务器 103 6.6.4调试发布的企业应用 104 6.7小结 104 6.8 参考资料 104 第七章 开发Hibernate应用 105 7.1介绍 105 7.2 Hibernate 一览 105 7.2.1简介 105 7.2.2 Hibernate要点 106 7.3准备工作 112 7.4创建 HibernateDemo 项目 112 7.4.1创建表格 112 7.4.2创建 HibernateDemo Java Project 113 7.4.3添加 Hibernate Capabilities 到现有项目 114 7.4.4 使用Hibernate配置文件编辑器修改文件 118 7.4.5 使用反向工程快速生成Java POJO类,映射文件和DAO 120 7.4.6 调整生成的hbm文件 132 7.4.7 编写测试代码 133 7.5 MyEclipse Hibernate工具的高级部分 135 7.5.1 反向工程向导的完整说明 135 7.5.2 使用HQL编辑器 138 7.6 小结 140 7.7参考资料 141 第八章 开发Web应用 142 8.1介绍 142 8.2 Web项目和术语 142 8.2.1 Java EE 中的Web项目结构 142 8.2.2 MyEclipse Web 项目介绍 144 8.3 创建Web项目 144 8.4 创建HTML页面 146 8.5 创建JSP页面 148 8.6 创建Servlet 150 8.7 创建Filter(过滤器) 152 8.8 创建数据库访问层(DAO) 155 8.9 修改Servlet调用后台类 158 8.10 发布,重新发布,运行和测试应用 159 8.11 调试JSP应用 160 8.12 向现有Web项目添加Web开发功能 161 8.13高级设置 161 8.13.1修改Web项目的默认设置 161 8.13.2给Web项目加入高级功能 162 8.14 常见问题 163 8.15 小结 163 8.16 参考资料 164 相关网页 164 Tomcat JSP Web 开发中的乱码问题小结 164 第九章 开发Struts 1.x应用 166 9.1 介绍 166 9.2 创建Struts项目 168 9.2.1 创建Web项目 169 9.2.2 加入 Struts开发功能 169 9.3 使用Struts工具 171 9.3.1 Struts配置文件编辑器 171 9.3.2 Struts组件向导 173 9.4编写登录应用 175 9.4.1 应用的流程和目标 175 9.4.2 创建登录成功页面 175 9.4.3 使用新建Form,Action和JSP的向导创建关键组件 176 9.4.4 调整生成的代码 180 9.4.5 发布,运行并测试 183 9.4.6 练习题:如何用JDBC实现登录? 184 9.5 编写Struts整合Hibernate分页应用 184 9.5.1 分页应用的设计思路 184 9.5.2 创建StrutsPageDemo项目,加入Hibernate开发功能 190 9.5.3 反向工程生成DAO层 190 9.5.4 编写分页应用层 191 9.5.5 加入Struts表现层和控制层 192 9.5.6发布,运行并测试 196 9.5.7 练习:如何用Hibernate+Struts实现修改用户信息功能? 196 9.6 小结 197 9.7 参考资料 197 第十章 开发Spring应用 198 10.1 简介 198 10.1.1 Spring简介 198 10.1.2 MyEclipse的Spring开发功能简介 200 10.2 开发简单的Spring应用 200 10.2.1 给项目加入Spring功能 200 10.2.2 创建Bean类和配置信息 202 10.2.3 Spring Beans 视图和Outline视图 206 10.2.4 运行和测试 208 10.2.5 如何加载多个Spring配置文件 210 10.3 开发Spring 1.2 AOP应用 211 10.3.1 开发Man对象 211 10.3.2 开发前置通知(Before advice)对象:FBI 212 10.3.3 装配拦截器和Bean 212 10.3.4 测试和运行 214 10.3.5 AOP简介和相关概念 214 10.3.6 关于java.lang.ClassCastException: $Proxy0错误的解决方法 216 10.4 开发 Spring 2.0 AOP 应用 219 10.4.1 使用aop 标签实现AOP 219 10.4.2 使用标注(@AspectJ)实现AOP 221 10.4.3 开发环绕通知(Around Advice)AOP 应用 223 10.5 Spring数据库开发 227 10.5.1 DataSource 和 JDBCTemplate开发 227 10.5.2 Hibernate 整合 Spring开发 236 10.5.2.1 创建项目,添加必要的开发功能 236 10.5.2.2 反向工程生成Spring整合Hibernate的DAO 238 10.5.2.3 用Spring 1.2 的事务代理类解决事务提交问题 245 10.5.2.4 用Spring 2.0 的aop和tx声明式配置解决事务提交问题 247 10.5.2.5 用Spring 2.0 的@Transactional标注解决事务提交问题(最佳方案) 251 10.5.2.6 使用 HibernateTemplate 实现分页查询 254 10.6 小结 255 10.7 参考资料 255 10.7.1 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法 255 10.7.2 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法2 - 用 CGLIB 来实现事务管理 258 10.7.3 Spring相关的参考资料 261

系统设计
1 jive设计思路
2 jive的工作内幕
3 Jive源代码研究
4 Jive中的设计模式
5 jive学习笔记



设计模式
1 大道至简-Java之23种模式一点就通
2 设计模式宝典




数据库设计
1 Jive Forums数据库说明(英文)
2 Jive KB数据库说明(英文)
3 Jive Forums KB数据库说明(中文)
4 Jive Forums KB合并数据库脚本(MSSQL)
5 Jive Forums KB合并数据库脚本(Oracle)
6 Jive Forums KB合并数据库脚本(MySql)
7 使用XML封装数据库操作语句的实现
8 Database Package下面的暗黑世界
9 Jive树形结构视图(Treewalker)
10 有时候threadID并不是连续的
11 jsp连接数据库大全
12 OOD需要数据库设计吗?
13 JDBC性能优化技巧



权限设计
1 权限系统概要
2 关于权限设计方面的问题
3 关于用户角色权限管理一点想法
4 关于权限系统的设计



缓存系统
1 剖析Jive的缓存机制
2 jcs学习笔记
3 关于Hibernate的Cache问题
4 用缓冲技术提高JSP应用的性能和稳定性
5 SwarmCache入门



代码研究
1 Jive中的全局配置
2 Jive源代码情景分析-index.jsp
3 Jive源代码情景分析-forum.jsp
4 Jive源代码情景分析-过滤器篇
5 jive每日一步-web.xml
6 全面了解Jive中的ID机制
7 tree树形数据结构



扩展功能
1 为jive3.x写ColorFilter
2 Jive中的分页处理
3 Jive中Jdom使用剖析
4 丰富的图释
5 使用正则表达式让你的jive显示图片
6 Jive3增加帖子的点击功能的高效方法



国际化支持
1 jive_forums_i18n_zh_CN_ori.properties
2 jive_forums_i18n_zh_CN.properties
3 资源汉化方法
4 Jive的中文问题及解决办法
5 Java程序的国际化和本地化介绍
6 Java的i18n问题
7 Java国际化——资源包的使用
8 国际化
9 Supported Encodings
10 native2ascii - Native-to-ASCII Converter
11 Jive 3.x UTF-8中文附件问题
12 JF3.1.3 JKB1.0.2 中文化
13 Jive3.0.8 MYSQL的中文解决方案
14 jive_kb_i18n_zh_CN_ori.properties



全文搜索
1 使您的Jive搜索支持中文
2 关于Jive2中的中文搜索
3 基于JAVA的全文索引引擎Lucene简介



安全认证
1 Jive2.1.1 License保护原理分析
2 用Java的加密机制来保护你的数据
3 在java中编程实现数字签名系统
4 关于Jive1中的验证和相关类的调用

5 MD5的加密算法(JavaScript)



产品介绍
1 Jive简介

Jive Forums
1 Jive Forums特性
2 Jive Forums Changelog

Jive KB
1 Jive Knowledge Base特性
2 Jive Knowledge Base Changelog



系统缺陷
1 Jive的硬伤
2 查询的Bug



安装配置
1 Jive Forum KB的license
2 MakeWAR.jar文件中的MakeWAR.class源代码MakeWAR.java
3 为Jive写的补丁程序patcher.jar的源程序
4 WebLogic中文问题配置文件
5 JSP系统信息配置探针



反编译与混淆
1 編譯、反編譯、反反編譯

反编译
1 反编译常用工具

混淆
1 Sun公司的混淆器JADE
2 RetroGuard的使用方法

JVM
1 JVM之class文件结构
2 JVM 內的資料處理



MVC Framework
1 应用Struts的网站建设



Java基础
1 20个Java基础Tips
2 abstract,static,final修饰符
3 ChinaUnix.net Java精华贴
4 ANT学习笔记
5 极度性能调整


FAQs
1 关于ConnectionManager中的代码
2 关于FORUMFactory的几个疑问
3 研究哪个版本的jive最合适
Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺 第1章 导论 1 1.1 RoR的革命与Web开发的新时代 1 1.2 RoR并不完美 2 1.2.1 Ruby语言方面的不足 2 1.2.2 对历史遗留项目的支持较为困难 2 1.3 Grails的诞生解决了一些遗憾 3 1.3.1 Groovy语言 3 1.3.2 Grails站在了巨人的肩膀之上 3 1.3.3 Grails有良好的扩展性 3 1.4 对Grails的一些误解 3 1.5 本书的使用说明 4 1.6 本章小结 4 第一篇 入门篇 第2章 Hello Grails 6 2.1 Grails的安装 6 2.1.1 JDK的安装与配置 6 2.1.2 Grails的安装 7 2.2 创建Grails工程 8 2.3 Grails的MVC架构 11 2.4 Scaffold应用程序 14 2.5 开发工具的使用 17 2.6 本章小结 19 第3章 Groovy VS Java 20 3.1 Groovy的基本类型与运算符 21 3.1.1 字符串 21 3.1.2 数字 22 3.1.3 Groovy的类 23 3.1.4 运算符 24 3.2 Groovy的控制结构 25 3.3 Groovy的集合 27 3.3.1 列表 27 3.3.2 映射 28 3.3.3 区间 29 3.4 Groovy的闭包 30 3.4.1 闭包的定义 30 3.4.2 闭包的代表 31 3.4.3 闭包在GDK中的使用 31 3.5 本章小结 33 第二篇 实际应用 第4章 商品维护 36 4.1 准备工作 36 4.2 查看商品列表 40 4.3 创建和编辑商品 44 4.4 本章小结 48 第5章 商品搜索 49 5.1 构造查询表单 49 5.2 复杂的数据库查询 50 5.2.1 HibernateCriteriaBuilder 的初窥 51 5.2.2 数据库的分页查询 54 5.2.3 将查询改造为inner join 59 5.3 显示分页导航 60 5.4 本章小结 62 第6章 用户注册与登录 63 6.1 表单验证与资源文件 63 6.2 用户注册 69 6.3 用户登录 73 6.3.1 登录的数据库查询 73 6.3.2 使用Session维持会话 74 6.3.3 自定义Codec实现对 密码加密 75 6.4 登录保护 76 6.5 本章小结 79 第7章 购物车与订单 80 7.1 购物车的查看与管理 80 7.1.1 定义购物车的Domain类 80 7.1.2 定义OrderService类 82 7.1.3 显示购物车 84 7.1.4 维护购物车 85 7.2 订单的提交 90 7.2.1 定义订单的Domain类 90 7.2.2 提交订单的表单页面 90 7.2.3 订单的保存 94 7.3 订单的查看 95 7.4 本章小结 99 第8章 系统后台管理 100 8.1 页面布局的使用 100 8.1.1 Grails Layout的基础知识 100 8.1.2 为系统后台管理创建 统一的decorator 103 8.2 文件上传的实现 107 8.2.1 开发表单页面 107 8.2.2 在Controller中接收文件 108 8.3 修改订单状态 109 8.4 本章小结 110 第9章 Grails的自动化测试 111 9.1 Grails自动化测试基础知识 111 9.2 编写测试用例 113 9.2.1 对Domain类进行测试 113 9.2.2 对Service类进行测试 116 9.2.3 对Controller进行测试 118 9.2.4 对Taglib进行测试 120 9.3 本章小结 121 第10章 部署应用 122 10.1 Grails对部署的支持 122 10.2 配置应用程序 124 10.3 本章小结 127 第三篇 深入了解Grails 第11章 深入GORM 130 11.1 自定义映射 130 11.1.1 基本映射 130 11.1.2 配置主键 131 11.1.3 “锁”与Version 133 11.1.4 事件与自动时间戳 134 11.1.5 映射Blob字段 134 11.1.6 定义非持久化属性 135 11.2 深入理解Domain间的关系 136 11.2.1 一对一关系 136 11.2.2 一对多关系 137 11.2.3 多对多关系 139 11.2.4 继承关系 141 11.2.5 合成关系 143 11.3 数据库查询小结 143 11.3.1 GORM提供了便捷的 查询方法 143 11.3.2 基于HQL的查询 145 11.4 对GORM进行性能优化 146 11.4.1 设置抓取模式 147 11.4.2 使用二级缓存 147 11.5 使用GRAG工具生成Domain 151 11.6 本章小结 154 第12章 与Spring整合 155 12.1 依赖注入与Spring容器基础 155 12.1.1 依赖注入 155 12.1.2 Spring容器基础 157 12.2 在Grails中使用Spring 158 12.3 本章小结 160 第13章 深入Controller 161 13.1 Controller中常用的属性与方法 161 13.2 自定义URL Mapping 164 13.3 Web Flow 167 13.4 本章小结 172 第14章 深入Groovy Server Page 174 14.1 GSP基础知识 174 14.1.1 GSP输出表达式 174 14.1.2 GSP中预定义的变量 与作用域 175 14.2 GSP标签库 175 14.2.1 常用的内置标签 176 14.2.2 开发自定义标签 179 14.3 Grails对Ajax的支持 182 14.4 本章小结 184 第15章 实现Web Service 185 15.1 REST风格的Web Service 185 15.1.1 什么是REST 185 15.1.2 在Grails中实现REST 185 15.1.3 在Client端调用服务 187 15.2 基于SOAP的传统Web Service 188 15.3 本章小结 189 第16章 使用Grails插件 190 16.1 插件的安装 190 16.2 插件的组织结构 196 16.3 插件的使用 197 16.3.1 Acegi插件 197 16.3.2 Debug插件 204 16.4 本章小结 205 第四篇 Grails解密 第17章 高级Groovy特性 208 17.1 动态方法调用与属性访问 208 17.1.1 动态方法调用 208 17.1.2 动态属性访问 208 17.2 invokeMethod和getProperty 209 17.3 MOP动态基础 211 17.3.1 遍历方法和属性 211 17.3.2 动态添加方法 213 17.3.3 动态添加属性 215 17.3.4 使用方法对象 216 17.3.5 为某一特定的实例 添加方法 217 17.4 本章小结 218 第18章 Grails插件开发 219 18.1 创建与发布插件 219 18.2 插件能做什么 221 18.2.1 添加Spring配置信息 223 18.2.2 与Spring容器交互 224 18.2.3 修改web.xml 224 18.2.4 添加动态方法 226 18.2.5 捕获变更 227 18.3 插件的依赖关系 229 18.4 在安装或升级时执行附加操作 230 18.5 本章小结 230 第19章 浅析Grails的源程序 231 19.1 准备工作 231 19.1.1 下载源码 231 19.1.2 编译Grails源码 231 19.2 HibernateCriteriaBuilder的原理 233 19.3 开启Hibernate Query Cache 237 19.4 本章小结 241 第20章 未来Grails版本的新特性 242 20.1 GORM的新特性 242 20.1.1 更多的GORM事件 242 20.1.2 映射基本类型的集合 243 20.1.3 对Domain的只读访问 243 20.1.4 定义默认排序字段 243 20.1.5 改进的findBy 245 20.2 对插件系统的改进 245 20.3 数据绑定 245 20.4 在GSP中使用JSP的标签 246 20.5 加密配置文件中的数据库密码 246 20.6 本章小结 246 参考文献 247 索引 248 Grails技术精解与Web开发实践 目录 XII XI

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧