hibernate+struts2分页查询的问题

ld191474639 2011-09-24 07:53:44
struts.xml <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<action name="add" class="com.SH2.Person">
<result name="success">/Success.jsp</result>
</action>
<action name="Login" class="com.SH2.Person" method="Login">
<result name="success">/Wel.jsp</result>
<result name="input">/Fail.jsp</result>
</action>
<action name="Del" class="com.SH2.Person" method="delect">
<result name="success">/Del.jsp</result>
<result name="input">/Fail1.jsp</result>
</action>
<action name="Update" class="com.SH2.Person" method="Update">
<result name="success">/Login.jsp</result>

</action>
</package></struts>
Peoson.java
package com.SH2;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.SH.People;
import com.SH3.Update;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class Person extends ActionSupport{
private int PageCount;
public int getPageCount() {
return PageCount;
}
public void setPageCount(int pageCount) {
PageCount = pageCount;
}

private int pageSize=3;
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}

private List list;
private int pageNow=1;
public int getPageNow() {
return pageNow;
}
public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}

private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRepassword() {
return repassword;
}
public void setRepassword(String repassword) {
this.repassword = repassword;
}
private String uname;
private String password;
private String repassword;
@Override
public String execute() throws Exception {
People p=new People();
p.setUname(uname);
p.setRepassword(repassword);
p.setPassword(password);
Update.save(p);
return SUCCESS;


}public String Login()throws Exception {

Update u=new Update();
PageCount=u.Count();
HttpServletRequest request=ServletActionContext.getRequest();
String pagenow= request.getParameter("pageNow");

if(pagenow!=null){
pageNow=Integer.parseInt(pagenow);
}
list=u.find(pageNow,pageSize);
ActionContext.getContext().getSession().put("uname", uname);
if(u.Login(uname, password)){
return SUCCESS;
}return INPUT;
}public String delect(){
Update.delete(id);
return SUCCESS;
}
public String Update(){
People p=Update.Find(id);

p.setPassword(password);
p.setRepassword(repassword);
Update.update(p);
return SUCCESS;
}

private People p=new People();
public People getP() {
return p;
}
public void setP(People p) {
this.p = p;
}
}
People.java
package com.SH;

public class People {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRepassword() {
return repassword;
}
public void setRepassword(String repassword) {
this.repassword = repassword;
}
private String uname;
private String password;
private String repassword;
}
People.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="com.SH.People" table="People">
<id name="id" column="ID_">
<generator class="native"/>
</id>
<property name="uname" />
<property name="password"/>
<property name="repassword"></property>
</class>
</hibernate-mapping>
Update.java
package com.SH3;
mport java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.SH.People;
import com.SH4.ConnOB;
public class Update {
private int pageSize=3;
private int rowCount=0;
private int pageCount=0;
private Connection ct=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
public static void save(People p){
Configuration c=new Configuration();
c.configure();
SessionFactory f=c.buildSessionFactory();
Session session=f.getCurrentSession();
Transaction r=session.beginTransaction();
session.save(p);
r.commit();
}
public boolean Login(String uname,String password){
boolean b=false;
try{
ct=new ConnOB().getconn();
ps=ct.prepareStatement("select password from People where uname='"+uname+"'");
rs=ps.executeQuery();
if(rs.next()){
String p=rs.getString(1);
if(p.equals(password)){
b=true;
}
}
}catch(Exception e){
e.printStackTrace();
}return b;
}@SuppressWarnings("unchecked")
public List find(int pageNow,int pageSize){
Configuration c=new Configuration();
c.configure();
SessionFactory f=c.buildSessionFactory();
Session session=f.getCurrentSession();
@SuppressWarnings("unused")
Transaction r=session.beginTransaction();
List list= session.createQuery("from People").setFirstResult((pageNow-1)*pageSize).setMaxResults(pageSize).list();
session.close();
return list;
}public static void delete(int id){
Configuration c=new Configuration();
c.configure();
SessionFactory f=c.buildSessionFactory();
Session session=f.getCurrentSession();
Transaction r=session.beginTransaction();
People p=(People)session.get(People.class, id);
session.delete(p);
r.commit();
}
public static void update(People p){
Configuration c=new Configuration();
c.configure();
SessionFactory f=c.buildSessionFactory();
Session session=f.getCurrentSession();
Transaction r=session.beginTransaction();
session.update(p);
r.commit();
}public static People Find(int id){
People p=null;
Configuration c=new Configuration();
c.configure();
SessionFactory f=c.buildSessionFactory();
Session session=f.getCurrentSession();
Transaction r=session.beginTransaction();
p=(People)session.get(People.class, id);
r.commit();
return p;
}public int Count(){
try{
ct=new ConnOB().getconn();
ps=ct.prepareStatement("select count(*) from People");
rs=ps.executeQuery();
if(rs.next()){
rowCount=rs.getInt(1);

}if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
}catch(Exception e){
e.printStackTrace();
}return pageCount;
}

}
Login.jsp
<html>
<head>
</head>
<body>
<form action="Login.action">
<table>
<tr><td>用户名</td><td><input type="text" name="uname"/></td></tr>
<tr><td>密码</td><td><input type="password" name="password"/></td></tr>
</table>
<input type="submit" value="登录"/>
</form>
</body>
</html>
Wel.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<% String u=(String)session.getAttribute("uname");
if(u==null){
response.sendRedirect("Login.jsp");
}%>
<s:iterator value="list">
<table border=1>
<s:url action="Del" id="url">
<s:param name="id" value="%{id}"></s:param>
</s:url>
<s:url value="Update.jsp" id="ul">
<s:param name="id" value="id"/>
<s:param name="uname" value="uname"/>
<s:param name="password" value="password"/>
<s:param name="repassword" value="repassword"/>
</s:url>
<tr><th>用户名</th><th>密码</th><th>再次密码</th><th>删除</th><th>修改</th></tr>
<tr><td><s:property value="uname"/></td><td><s:property value="password"/></td><td><s:property value="repassword"/></td><td><s:a href="%{url}">删除</s:a></td><td><s:a href="%{ul}">编辑</s:a></td></tr>
</s:iterator>
</table>
<s:url value="Login" id="u">
<s:param name="pageNow" value="1"></s:param>
</s:url>
<s:url action="Login" id="w">
<s:param name="pageNow" value="pageNow-1"></s:param>
</s:url>
<s:url action="Login" id="e">
<s:param name="pageNow" value="pageNow+1"></s:param>
</s:url>
<s:url id="l" action="Login">
<s:param name="pageNow" value="PageCount"></s:param>
</s:url>
<s:a href="%{u}">首页</s:a>
<s:a href="%{i}"></s:a>
<s:if test="pageNow!=1">
<s:a href="%{w}">上一页</s:a>
</s:if>
<s:iterator value="list" status="status">
<s:url id="uul" action="Login">
<s:param name="pageNow" value="pageNow"/>
<s:param name="PageCount" value="PageCount"></s:param>
</s:url>
</s:iterator>
<s:if test="pageNow!=PageCount">
<s:a href="%{e}">下一页</s:a>
</s:if>
<s:a href="%{l}">末页</s:a>
</body>
</html>
为什么我的分页查询,显示第二页是错的呢,显示第2页的语句都可以发,重点看下action里的Login方法里的代码
...全文
165 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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