利用jquery的ajax技术,比如
$.get("这个是你的请求地址,比如action","这里是参数,要不要随便可以省略", function(data){
//这个是返回的callback函数
alert("Data Loaded: " + data);
//$("#id").html(data);
});你后台比如是struts2,你只要在跳转的你想要的页面就行了,这样就会把整个页面以data返回到ajax的data上
然后你得到data,用$("#id").html(data)替换掉该区域就ok了,无刷新
$.get("这个是你的请求地址,比如action","这里是参数,要不要随便可以省略", function(data){
//这个是返回的callback函数
alert("Data Loaded: " + data);
//$("#id").html(data);
});你后台比如是struts2,你只要在跳转的你想要的页面就行了,这样就会把整个页面以data返回到ajax的data上
然后你得到data,用$("#id").html(data)替换掉该区域就ok了,无刷新
解决方案 »
- 使用JFreeChart生成多饼图时,如何设置其布局
- 急急急!!!怎么实现点击试听按钮,不刷新整个页面,让播放器播放啊?
- 大家来排序排序吧
- 请问我该如何取出HTTP header的值呢?
- [求教]如何把一个表单中的提交按钮显示成一个图片?
- 这个问题都放了几天了,还是没有人能回答。这里没高人了?
- 报表自动分页打印问题!! 欢迎大家探讨。。。。
- 如何一次性的初始化所有的JSP页面?
- struts2中form标签的action和submit的action的困惑
- @RequestMapping和@Controller这两个注解是什么意思
- There is no Action mapped for namespace / and action
- 手机浏览器访问servlet下载apk时报错
然后在js中调用函数cut_page(page,count,div)
page-------当前页面
count------每页记录数量
div--------放记录的div二.当前页面导入包conn.DBbean和conn.OptionSP然后在内容中添加如下内容
//OptionSP构造函数中的student_info是表名和条件查询语句(eg. "book where id>3")count需要和上面js的count一样,也是每页记录数
OptionSP sp=new OptionSP("student_info",count);
String start_op=request.getParameter("start");
if(start_op==null)
{
sp.set_start(1);
}
else
{
int start_cp=Integer.parseInt(start_op);
sp.set_start(start_cp);
}三.将你页面输出数据的sql语句放在如下语句中
"select * from (select t.*,rownum as h from (SQL语句) t ) where
h>="+sp.get_start()+" and h<"+sp.get_end())
四.下面的代码是显示控制的,把它放在第一项div内的任何地方
//
<input type='text' value=<%=sp.get_start()%> id='help_fenye' last_start='<%=sp.get_last_start()%>' style='display:none'>
<span id='first_page' style='cursor:pointer;'>首页</span>
<span id='prev_page' style='cursor:pointer;'>上一页</span>
<span id='next_page' style='cursor:pointer;'>下一页</span>
<span id='last_page' style='cursor:pointer;'>末页</span>
<span>当前第<%=sp.get_now_page() %>/<%=sp.get_max_page()%> 页</span>(共<%=sp.get_count_num()%>条记录)
附带:
conn.DBbean内容如下(保存在DBbean.java文件中)
//--------------------------分割线---------------------------------
package conn;
import java.sql.*;
public class DBbean {
private String driver_url="oracle.jdbc.driver.OracleDriver";
private String conn_url="jdbc:oracle:thin:@localhost:1521:orcl";
private String db_user="cp";
private String pass="123";
private Connection conn=null;
private Statement stmt=null;
public DBbean(){
//建立连接
try{
Class.forName(driver_url);
conn=DriverManager.getConnection(conn_url,db_user,pass);
stmt=conn.createStatement();
}
catch (Exception e)
{
System.out.println("无法建立连接");
}
}
//查询方法
public ResultSet executeQuery(String s)
{
ResultSet rs=null;
try{
rs=stmt.executeQuery(s);
}
catch(Exception e){
System.out.println("执行查询出现错误");
}
return rs;
}
//更新方法
public int executeUpdate(String s){
int result=0;
try{
result=stmt.executeUpdate(s);
}
catch(Exception e)
{
System.out.println("更新出现未知错误");
}
return result;
}
//返回Connection,用于orcle事务
public Connection reConnection()
{
return conn;
}
//关闭statement对象及连接
public void close(){
try{
conn.close();
stmt.close();
}
catch(Exception e)
{ }
}
}
//-----------------分割线-------------------------------------conn.OptionSP内容如下(保存在OptionSP.java文件中)//-----------------分割线-------------------------------------
package conn;
import java.sql.ResultSet;
public class OptionSP{
private int count_num=0;//记录总数
private int last_start=0;//用于控制输出
private int start;//用于控制输出
private int end=0;//用于控制输出
private int now_page=0;//当前第几页
private int max_page=0;//共有多少页
private int per_page_records=0;//每页记录数量
public DBbean dbb=new DBbean();
//构造方法设置页面显示记录条数
public OptionSP(String table_name,int num){
this.per_page_records=num;
String sql="select count(*) from "+table_name;
try {
ResultSet rs_count_cp=dbb.executeQuery(sql);
rs_count_cp.next();
//设置count_num
count_num=rs_count_cp.getInt(1);
dbb.close();
}
catch(Exception e)
{
System.out.print("SQL错误");
}
float a=(float)count_num;
//设置last_start
last_start=((int)Math.ceil(a/per_page_records)-1)*per_page_records+1;
float count_num_var=(float)count_num;
max_page=(int)Math.ceil(count_num_var/per_page_records);
}
//返回每页记录条数
public int get_per_page_records(){
return this.per_page_records;
}
//获取记录数量count_num
public int get_count_num()
{
return count_num;
} //获取last_start
public int get_last_start()
{
return last_start;
}
//设置start
public void set_start(int start_cp)
{
int last_start_var=get_last_start();
start=start_cp;
if(start>=last_start_var)
{
start=last_start_var;
}
//设置end
end=start+per_page_records;
//设置now_page
now_page=(start-1)/per_page_records+1;
}
//获取start
public int get_start()
{
return start;
} //获取end
public int get_end()
{
return end;
} //获取now_page
public int get_now_page()
{
return now_page;
}
//获取max_page
public int get_max_page()
{
return max_page;
}
public static void main(String args[])
{ }
}//-------------------------------分割线------------------------jquery.js直接从网上下载,目前最新是1.8的
page.js如下//ps是处理分页记录的页面,num是每页显示记录条数,odiv是显示数据的DIV
function cut_page(ps,num,odiv)
{
//首页
$("#first_page").click(function(){
var start=1;
$.post(ps,{"start":start},function(data){
$(odiv).html(data);
})
})
//上一页
$("#prev_page").click(function(){
var start_1=parseInt($("#help_fenye").val());
var start=start_1-num;
if(start<1)
{
start=1;
}
$.post(ps,{"start":start},function(data){
$(odiv).html(data);
})
})
//下一页
$("#next_page").click(function(){
var start_1=parseInt($("#help_fenye").val());
var start=start_1+num;
$.post(ps,{"start":start},function(data){
$(odiv).html(data);
})
})
//尾页
$("#last_page").click(function(){
var start=parseInt($("#help_fenye").attr("last_start"));
$.post(ps,{"start":start},function(data){
$(odiv).html(data);
})
})
}
jqgrid、easyui 。