- 浏览: 89870 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
_Yggd:
bootstrap的扁平化插件,或者就是自己修改源码
bootstrap————前端的利器,抛除后台开发的噩梦 -
white_crucifix:
哦,原来是这样,因为我看对话框的UI不是bootstrap标准 ...
bootstrap————前端的利器,抛除后台开发的噩梦 -
_Yggd:
你说的是第二章图片么?第二张图片是我贴的前端大神网站的图片第一 ...
bootstrap————前端的利器,抛除后台开发的噩梦 -
white_crucifix:
楼主你的对话框是在bootstrap的alert基础上搞出来的 ...
bootstrap————前端的利器,抛除后台开发的噩梦 -
_Yggd:
源:http://docs.huihoo.com/ja ...
java和C++的简单的对比
分页对于数据库的应用来讲是再平常不过了,
不过关于为什么要进行分页,相信各位在搜“struts2自定义标签+hibernate分页的方法”
的时候心里已经明白了,所以我就不多说了,开始上关键代码,求指导:
tld文件描述:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jsp-version>1.2</jsp-version>
<shortname>mytags</shortname>
<uri>http://com.fyz/tagslib</uri>
<info></info>
<tag>
<name>pagesproduct</name>
<tag-class>com.fyz.tag.perpage</tag-class>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>url</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>pagesnew</name>
<tag-class>com.fyz.tag.perpage_new</tag-class>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
放在WEB-INF目录下
web.xml描述文件添加:
<jsp-config>
<taglib>
<taglib-uri>http://com.fyz/tagslib</taglib-uri>
<taglib-location>/WEB-INF/mypage.tld</taglib-location>
</taglib>
</jsp-config>
关于struts2的自定义标签来讲,他已经将jstl自定义标签封装起来了
所以在这里,我继承 ComponentTagSupport和Component
代码如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.fyz.tag;
import com.opensymphony.xwork2.util.ValueStack;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.components.Component;
import org.apache.struts2.views.jsp.ComponentTagSupport;
/**
*
* @author RDGFT
*/
public class perpage extends ComponentTagSupport{
private String name;
private String url;
@Override
public Component getBean(ValueStack vs, HttpServletRequest hsr, HttpServletResponse hsr1) {
return new Pages(vs,hsr);
}
//获得参数
@Override
protected void populateParams() {
super.populateParams();
Pages pages = (Pages)component;
pages.setName(name);
pages.setUrl(url);
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the url
*/
public String getUrl() {
return url;
}
/**
* @param url the url to set
*/
public void setUrl(String url) {
this.url = url;
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.fyz.tag;
import com.fyz.dao.ProductDAO;
import com.fyz.dao.port.ProductPort;
import com.fyz.pojo.Product;
import com.opensymphony.xwork2.util.ValueStack;
import java.io.IOException;
import java.io.Writer;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.components.Component;
/**
*
* @author RDGFT
*/
public class Pages extends Component {
private String name;
private String url;
private ProductPort product = new ProductDAO();
//以下的变量都是在分页中要用的的变量
private boolean isFirst = false;//是否为第一页
private boolean isLast = false;//是否为最后一页
private boolean firstislast = false;//只有一页
private int recordsCount;//记录记录总数
private int currentPage;//记录当前页面
private int pagecount;
private final int recordsInOnePage = 6;//设置每页显示数目
private HttpServletRequest request;
/**
*
* @param vs
*/
public Pages(ValueStack vs,HttpServletRequest request) {
super(vs);
this.request=request;
this.recordsCount = product.findAll().size();
pagecount = recordsCount / recordsInOnePage + (recordsCount % recordsInOnePage == 0 ? (0) : (1));
}
@Override
public boolean start(Writer writer) {
boolean result = super.start(writer);
StringBuilder str = new StringBuilder();
StringBuilder str2 = new StringBuilder();
boolean isValid = true;
if (isValid) {
if (this.name != null && this.name.equals(""));
this.name = (String) this.getStack().findValue(name);
} else {
isValid = false;
}
if (isValid) {
if (request.getParameter("pageNumber") == null)//判断是否是第一页
{
currentPage = 1;
isFirst = true;
System.out.println("perpage中");
} else {
currentPage = Integer.parseInt(request.getParameter("pageNumber"))==0?1:Integer.parseInt(request.getParameter("pageNumber"));
}
List<Product> list = product.getproductbyfenye(recordsInOnePage, currentPage);
//考虑最后是否是最后一页,分两种情况
//如果总记录数能够被每页记录数整除,页码为倒数第二页码即可作为最后一页
if (recordsCount % recordsInOnePage == 0 && currentPage == recordsCount / recordsInOnePage) {
isLast = true;
if (recordsCount == 6) {
firstislast = true;
}
} //如果总记录数不能够被每页记录数整除,页码为倒数第一页码才作为最后一页
else if (recordsCount % recordsInOnePage != 0 && currentPage == recordsCount / recordsInOnePage + 1) {
isLast = true;
if (recordsCount < 6) {
firstislast = true;
}
} else {
isLast = false;
}
for (Product p : list) {
System.out.println(p.getName());
str.append("<tr>"
+ "<td rowspan='2' align='center' class='altbg2'>"
+ p.getNumber()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align=center'>"
+ p.getName()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ p.getBrand()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ p.getMode()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ p.getPrice()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ "<a href='admin/updateProduct.jsp?id=" + p.getId() + "&number=" + p.getNumber() + "&name=" + p.getName() + "&brand=" + p.getBrand() + "&model=" + p.getMode() + "&price=" + p.getPrice() + "&picture=" + p.getPicture() + "&des=" + p.getDes() + "'>修改</a>"
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ "<a href='deleteproduct.action?id=" + p.getId() + "'>删除</a>"
+ "</td>"
+ "</tr>"
+ "<tr>"
+ "</tr>");
// str.append("<tr><td rowspan='2' align='center' class='altbg2'>").append(p.getNumber()).append("</td><td class='altbg2' rowspan='2' align='center'>").append(p.getName()).append("</td><td class='altbg2' rowspan='2' align='center>").append(p.getBrand()).append("</td><td class='altbg2' rowspan='2' align='center>").append(p.getMode()).append("</td><td class='altbg2' rowspan='2' align='center>").append(p.getPrice()).append("</td><td class='altbg2' rowspan='2' align='center>" + "<a href='updateproduct.action?id=").append(p.getId()).append("'>修改</a></td><td class='altbg2' rowspan='2' align='center'><a href='deleteproduct.action?id=").append(p.getId()).append("'>删除</a>"
// + "</td>"
// + "</tr><tr></tr>");
}
str2.append("<font color='red'><center>"
+ "共"+pagecount+"页"
+"第"+currentPage+"页"
+"</center></font>");
if(firstislast){
}
if(isLast){
str2.append("<center>"
+ "<a href='admin/manageProduct.jsp?pageNumber=1'>首页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + (currentPage - 1) + "'>上一页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + pagecount + "'>最后一页</a>"
+ "</center>");
}
if (!isLast) {
str2.append("<center>"
+ "<a href='admin/manageProduct.jsp?pageNumber=1'>首页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + (currentPage - 1) + "'>上一页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + (currentPage + 1) + "'>下一页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + pagecount + "'>最后一页</a>"
+ "</center>");
}
try {
writer.write(str.toString());
writer.write(str2.toString());
writer.flush();
} catch (IOException ex) {
Logger.getLogger(Pages.class.getName()).log(Level.SEVERE, null, ex);
}
}
return result;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the url
*/
public String getUrl() {
return url;
}
/**
* @param url the url to set
*/
public void setUrl(String url) {
this.url = url;
}
}
hibernate那部分如下:
@Override
public List getproductbyfenye(int onepagesize, int currentpage) {
String sql="from Product as p order by p.id";
Query query=super.getSession().createQuery(sql);
query.setFirstResult((currentpage-1)*6);
query.setMaxResults(onepagesize);
return query.list();
}
页面引用:
<%@ page contentType = " text/html; charset=gb2312 " pageEncoding="gb2312"%>
<%@taglib prefix="mytags" uri="http://com.fyz/tagslib"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>管理人员-管理</title>
<link rel="stylesheet" type="text/css" href="${basePath}css/style_admin.css">
</head>
<body>
<table cellspacing="1" cellpadding="4" width="100%"
class="tableborder" id="table3">
<form name="form1" action="showUserList.jsp" method="post">
<tr>
<td colspan="15" class="header">
商品管理
</td>
</tr>
<tr>
<td align="center" class="altbg1">
<b>商品编号</b>
</td>
<td align="center" class="altbg1">
<b>商品名称</b>
</td>
<td align="center" class="altbg1">
<b>商品商标</b>
</td>
<td align="center" class="altbg1">
<b>商品型号</b>
</td>
<td align="center" class="altbg1">
<b>商品价格</b>
</td>
<td align="center" class="altbg1">
<b>修改</b>
</td>
<td align="center" class="altbg1">
<b>删除</b>
</td>
</tr>
<mytags:pagesproduct name="product" url="admin/manageProduct.jsp"></mytags:pagesproduct>
</table>
</body>
</html>
至此,自定义标签已经开发完成,希望各位走过路过的大神能指点一二
不过关于为什么要进行分页,相信各位在搜“struts2自定义标签+hibernate分页的方法”
的时候心里已经明白了,所以我就不多说了,开始上关键代码,求指导:
tld文件描述:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jsp-version>1.2</jsp-version>
<shortname>mytags</shortname>
<uri>http://com.fyz/tagslib</uri>
<info></info>
<tag>
<name>pagesproduct</name>
<tag-class>com.fyz.tag.perpage</tag-class>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>url</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>pagesnew</name>
<tag-class>com.fyz.tag.perpage_new</tag-class>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
放在WEB-INF目录下
web.xml描述文件添加:
<jsp-config>
<taglib>
<taglib-uri>http://com.fyz/tagslib</taglib-uri>
<taglib-location>/WEB-INF/mypage.tld</taglib-location>
</taglib>
</jsp-config>
关于struts2的自定义标签来讲,他已经将jstl自定义标签封装起来了
所以在这里,我继承 ComponentTagSupport和Component
代码如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.fyz.tag;
import com.opensymphony.xwork2.util.ValueStack;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.components.Component;
import org.apache.struts2.views.jsp.ComponentTagSupport;
/**
*
* @author RDGFT
*/
public class perpage extends ComponentTagSupport{
private String name;
private String url;
@Override
public Component getBean(ValueStack vs, HttpServletRequest hsr, HttpServletResponse hsr1) {
return new Pages(vs,hsr);
}
//获得参数
@Override
protected void populateParams() {
super.populateParams();
Pages pages = (Pages)component;
pages.setName(name);
pages.setUrl(url);
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the url
*/
public String getUrl() {
return url;
}
/**
* @param url the url to set
*/
public void setUrl(String url) {
this.url = url;
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.fyz.tag;
import com.fyz.dao.ProductDAO;
import com.fyz.dao.port.ProductPort;
import com.fyz.pojo.Product;
import com.opensymphony.xwork2.util.ValueStack;
import java.io.IOException;
import java.io.Writer;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.components.Component;
/**
*
* @author RDGFT
*/
public class Pages extends Component {
private String name;
private String url;
private ProductPort product = new ProductDAO();
//以下的变量都是在分页中要用的的变量
private boolean isFirst = false;//是否为第一页
private boolean isLast = false;//是否为最后一页
private boolean firstislast = false;//只有一页
private int recordsCount;//记录记录总数
private int currentPage;//记录当前页面
private int pagecount;
private final int recordsInOnePage = 6;//设置每页显示数目
private HttpServletRequest request;
/**
*
* @param vs
*/
public Pages(ValueStack vs,HttpServletRequest request) {
super(vs);
this.request=request;
this.recordsCount = product.findAll().size();
pagecount = recordsCount / recordsInOnePage + (recordsCount % recordsInOnePage == 0 ? (0) : (1));
}
@Override
public boolean start(Writer writer) {
boolean result = super.start(writer);
StringBuilder str = new StringBuilder();
StringBuilder str2 = new StringBuilder();
boolean isValid = true;
if (isValid) {
if (this.name != null && this.name.equals(""));
this.name = (String) this.getStack().findValue(name);
} else {
isValid = false;
}
if (isValid) {
if (request.getParameter("pageNumber") == null)//判断是否是第一页
{
currentPage = 1;
isFirst = true;
System.out.println("perpage中");
} else {
currentPage = Integer.parseInt(request.getParameter("pageNumber"))==0?1:Integer.parseInt(request.getParameter("pageNumber"));
}
List<Product> list = product.getproductbyfenye(recordsInOnePage, currentPage);
//考虑最后是否是最后一页,分两种情况
//如果总记录数能够被每页记录数整除,页码为倒数第二页码即可作为最后一页
if (recordsCount % recordsInOnePage == 0 && currentPage == recordsCount / recordsInOnePage) {
isLast = true;
if (recordsCount == 6) {
firstislast = true;
}
} //如果总记录数不能够被每页记录数整除,页码为倒数第一页码才作为最后一页
else if (recordsCount % recordsInOnePage != 0 && currentPage == recordsCount / recordsInOnePage + 1) {
isLast = true;
if (recordsCount < 6) {
firstislast = true;
}
} else {
isLast = false;
}
for (Product p : list) {
System.out.println(p.getName());
str.append("<tr>"
+ "<td rowspan='2' align='center' class='altbg2'>"
+ p.getNumber()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align=center'>"
+ p.getName()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ p.getBrand()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ p.getMode()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ p.getPrice()
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ "<a href='admin/updateProduct.jsp?id=" + p.getId() + "&number=" + p.getNumber() + "&name=" + p.getName() + "&brand=" + p.getBrand() + "&model=" + p.getMode() + "&price=" + p.getPrice() + "&picture=" + p.getPicture() + "&des=" + p.getDes() + "'>修改</a>"
+ "</td>"
+ "<td class='altbg2' rowspan='2' align='center'>"
+ "<a href='deleteproduct.action?id=" + p.getId() + "'>删除</a>"
+ "</td>"
+ "</tr>"
+ "<tr>"
+ "</tr>");
// str.append("<tr><td rowspan='2' align='center' class='altbg2'>").append(p.getNumber()).append("</td><td class='altbg2' rowspan='2' align='center'>").append(p.getName()).append("</td><td class='altbg2' rowspan='2' align='center>").append(p.getBrand()).append("</td><td class='altbg2' rowspan='2' align='center>").append(p.getMode()).append("</td><td class='altbg2' rowspan='2' align='center>").append(p.getPrice()).append("</td><td class='altbg2' rowspan='2' align='center>" + "<a href='updateproduct.action?id=").append(p.getId()).append("'>修改</a></td><td class='altbg2' rowspan='2' align='center'><a href='deleteproduct.action?id=").append(p.getId()).append("'>删除</a>"
// + "</td>"
// + "</tr><tr></tr>");
}
str2.append("<font color='red'><center>"
+ "共"+pagecount+"页"
+"第"+currentPage+"页"
+"</center></font>");
if(firstislast){
}
if(isLast){
str2.append("<center>"
+ "<a href='admin/manageProduct.jsp?pageNumber=1'>首页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + (currentPage - 1) + "'>上一页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + pagecount + "'>最后一页</a>"
+ "</center>");
}
if (!isLast) {
str2.append("<center>"
+ "<a href='admin/manageProduct.jsp?pageNumber=1'>首页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + (currentPage - 1) + "'>上一页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + (currentPage + 1) + "'>下一页</a>"
+ "<a href='admin/manageProduct.jsp?pageNumber=" + pagecount + "'>最后一页</a>"
+ "</center>");
}
try {
writer.write(str.toString());
writer.write(str2.toString());
writer.flush();
} catch (IOException ex) {
Logger.getLogger(Pages.class.getName()).log(Level.SEVERE, null, ex);
}
}
return result;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the url
*/
public String getUrl() {
return url;
}
/**
* @param url the url to set
*/
public void setUrl(String url) {
this.url = url;
}
}
hibernate那部分如下:
@Override
public List getproductbyfenye(int onepagesize, int currentpage) {
String sql="from Product as p order by p.id";
Query query=super.getSession().createQuery(sql);
query.setFirstResult((currentpage-1)*6);
query.setMaxResults(onepagesize);
return query.list();
}
页面引用:
<%@ page contentType = " text/html; charset=gb2312 " pageEncoding="gb2312"%>
<%@taglib prefix="mytags" uri="http://com.fyz/tagslib"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>管理人员-管理</title>
<link rel="stylesheet" type="text/css" href="${basePath}css/style_admin.css">
</head>
<body>
<table cellspacing="1" cellpadding="4" width="100%"
class="tableborder" id="table3">
<form name="form1" action="showUserList.jsp" method="post">
<tr>
<td colspan="15" class="header">
商品管理
</td>
</tr>
<tr>
<td align="center" class="altbg1">
<b>商品编号</b>
</td>
<td align="center" class="altbg1">
<b>商品名称</b>
</td>
<td align="center" class="altbg1">
<b>商品商标</b>
</td>
<td align="center" class="altbg1">
<b>商品型号</b>
</td>
<td align="center" class="altbg1">
<b>商品价格</b>
</td>
<td align="center" class="altbg1">
<b>修改</b>
</td>
<td align="center" class="altbg1">
<b>删除</b>
</td>
</tr>
<mytags:pagesproduct name="product" url="admin/manageProduct.jsp"></mytags:pagesproduct>
</table>
</body>
</html>
至此,自定义标签已经开发完成,希望各位走过路过的大神能指点一二
发表评论
-
推荐web前端开发一站式解决方案--- ---amazeui
2014-12-17 20:18 769中国首个开源 HTML5 跨屏前端框架 之前在网站上分享 ... -
你经常不知觉间用的那些非常有用的apache commons类库的详解
2014-10-20 22:26 1285源:http://blog.csdn.net/wiker_yo ... -
简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。
2014-09-11 20:03 1066bootstrap可以为我们做: ... -
Java 理论与实践: 使用通配符简化泛型使用
2013-09-20 21:22 918自从泛型被添加到 JDK 5 语言以来,它一直都是一个颇具争议 ... -
关于java中的泛型以及用面向对象的继承性来简化DAO的代码量
2013-09-09 22:53 1265今天看到这段代码,加深了对java中的泛型编程的理解: ... -
javaEE jar包总汇之常用
2013-09-07 15:22 1527不知道大家平时做东西的时候会不会缺少jar包呢? 不知道你 ... -
java 内存溢出的那些事
2013-09-01 21:42 949源:http://blog.chinaunix.net ... -
java和C++的简单的对比
2013-08-23 20:29 1092曾经听过有人不看好Java这种语言,(当然这个人对于C++ ... -
spring jdbctemplate自定义分页的小白实现(大神轻拍)
2013-08-08 17:22 1780高手请看这里:http://blog.csdn.net/YUH ... -
spring jdbctemplate的最佳学习实践
2013-08-07 20:57 1461源:http://docs.huihoo.com/sp ... -
registered the JBDC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver] but fa
2013-07-30 16:40 0RT: 关于这个错误: 严重: A web applicat ... -
解析java泛型的的类型擦除
2013-07-28 18:21 1448解析java泛型的的类型擦除 一、Java 泛型的本质 Ja ... -
mysql中text数据存储
2013-07-27 21:16 813Caused by: com.mysql.jdbc.Mysql ... -
小说网站的章节截取
2013-07-27 20:39 1168大家在看小说的时候有 ... -
servlet 实现过滤器中向浏览器发送压缩数据流
2013-07-21 14:55 969参考:http://fengyanzhang.iteye.co ... -
Servlet中HttpServletResponse的应用
2013-07-21 14:39 1569源:http://blog.csdn.net/zhcj3672 ... -
struts2中访问servlet API 的方法以及优劣性
2013-07-20 10:15 1094虽然struts2做到了与servlet解耦,但是有时候我们还 ... -
框架整合之struts2+spring3
2013-07-19 20:24 802在整合struts2和spring3的时候还费了挺大的劲儿 ... -
品红的聊天页面做好了
2013-07-18 15:00 765这两天在做品红的聊天页面 QAQ。 由于聊天采用的是ajax ... -
spring最简单的aop实现
2013-07-15 20:35 766其实spring中的aop就是设 ...
相关推荐
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(模型-视图-控制器)架构的实现,Spring提供了强大的依赖注入和面向切面编程功能,而Hibernate则是一个优秀的...
系统搭建使用struts2 + spring + hibernate + easyui 整合的, 功能包括: 分页查询,自定义页面数据显示量,用户名模糊搜索,创建时间段,更新时间段内用户信息搜索,双击行进行编辑,多行选中删除,右键菜单已经写好...
总的来说,使用Struts2+Spring+Hibernate实现分页显示,需要综合运用这三个框架的核心特性,通过拦截器处理分页逻辑,Spring管理业务对象和事务,Hibernate处理数据查询。这个过程涉及到前端视图的构建、后端服务的...
同时,Struts2和Spring也可以配合提供分页支持,例如通过Action类中的方法返回分页信息,或者利用Spring的Pageable接口和Page对象。 在实际项目中,"sshext"的结构可能包含以下几个部分: 1. `WebRoot`:这是Web...
在处理大量数据时,为了提高用户体验,通常会采用分页显示数据,这就是所谓的"Struts+Hibernate分页标签"。在这个场景下,我们将深入探讨如何在Struts2框架中使用自定义标签来实现与Hibernate的整合,完成数据的分页...
在这个基于Struts2的自定义分页标签的实践中,我们将深入探讨如何创建、配置和使用自定义标签来实现数据的分页展示,同时与Oracle数据库进行交互。 首先,理解分页的基本概念至关重要。分页是将大量数据分成小块,...
5. **Struts2的拦截器**:为了实现分页,我们可以创建一个自定义的Struts2拦截器,拦截请求并添加分页参数。拦截器可以检查URL中的页码参数,然后传递给Action。 6. **Hibernate的分页查询**:Hibernate提供`...
本项目结合了JSP自定义标签、JPA(Java Persistence API)、Hibernate ORM框架以及Struts2框架,实现了高效且灵活的分页功能。下面我们将详细探讨这些技术及其在分页中的应用。 首先,JSP自定义标签(Custom Tags)...
### Struts2 + Spring2 + Hibernate3 经典分页技术解析 #### 一、概述 在企业级应用开发中,分页显示是常见的需求之一。对于数据量较大的查询结果,采用分页的方式不仅能减轻服务器的压力,提高用户体验,还能更好...
Struts 2、Hibernate 和 Spring 是 Java Web 开发中的三个重要框架,它们组合在一起形成了一个强大的后端开发架构。这个基于 Struts 2+Hibernate+Spring 的论坛系统源码提供了学习和理解这些技术如何协同工作的实例...
PageHelper是一个常用的Hibernate分页插件,它可以自动处理分页查询,我们只需在查询前调用`PageHelper.startPage()`设置分页参数即可。 最后,Struts2 Action会将Service返回的分页结果传递给视图层,通常使用JSP...
综上所述,"struts2+hibernate增删改查+分页"是一个基础的Java Web开发示例,它涵盖了MVC架构下,如何利用Struts2处理用户请求,通过Hibernate进行数据库操作,以及实现简单的分页功能。这种组合在实际项目中非常...
4. **后台表格分页实现**:在实际应用中,通常会有一个专门的Service层方法处理分页请求,该方法先通过Hibernate查询数据,然后使用Spring的ModelMap或者自定义的Dto将数据打包返回给Struts2 Action。Action再将结果...
- **标签库**:Struts 提供了一系列自定义标签,如`<s:form>`、`<s:textfield>`等,简化了视图层的开发。 2. **Spring**: - **依赖注入(DI)**:Spring 提供了强大的依赖注入功能,使得组件间的依赖关系可以...
2. **Hibernate分页**: Hibernate提供了`Criteria`、`Query`接口以及`ScrollableResults`来实现分页。通过设置`setFirstResult()`和`setMaxResults()`方法,可以指定从哪一条数据开始获取,以及最多获取多少条数据,...
Struts2、Hibernate3.2、Spring2.0和SQL Server 2000是Java Web开发中的四个关键组件,它们构成了一个强大的企业级应用框架,通常被称为SSH2(Struts2、Spring2、Hibernate2)集成框架。下面将详细阐述这些技术以及...
电影后台管理系统是一个典型的Web应用程序,它使用了Spring、Struts2和Hibernate这三大框架,以及前端的EasyUI组件库来实现高效、稳定的管理功能。这个系统没有采用Maven作为项目构建工具,而是采取了传统的手动依赖...
**Struts、Hibernate和自定义标签在构建网上书店系统中的应用** 本网上书店系统是一个基于MVC(Model-View-Controller)设计模式的Web应用程序,它整合了Java的两大核心框架——Struts和Hibernate,以及自定义标签...
在这个项目中,分页功能可能通过Struts1的拦截器或者自定义标签来实现,允许用户按页浏览三国人物的信息,提高用户体验。 项目文件`SanGuo`可能包含以下内容: 1. **源代码**:包括Struts1的Action类、Spring的配置...