posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

请使用 mysql 1.5 或以上version;
测试表 level ;
create table test.level (name varchar(20));
再 insert 些数据 ;

 /*初始化*/ 
 
drop procedure if exists  useCursor //    
 
 
/*建立 存储过程 create */ 
 
CREATE PROCEDURE useCursor()
    
BEGIN
    
/*局部变量的定义 declare*/ 
         
declare tmpName varchar(20default '' ;
         
declare allName varchar(255default '' ;
         
         
declare cur1 CURSOR FOR SELECT name FROM test.level ;
         
         
/*    mysql 不知道为什么用异常加入判断 ?
          *    此请参考官方文档
20.2.11. 光标 光标 
          *        这把 游标 异常后 捕捉 
          *        并设置 循环使用 变量 tmpname 为 null 跳出循环。
          
*/
         
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = null;
    
    
    
/*开游标*/ 
     
OPEN cur1;
         
/*游标向下走一步*/ 
         
FETCH cur1 INTO tmpName;
         
         
/* 循环体 这很明显 把游标查询出的 name 都加起并用 ; 号隔开 */
      
WHILE ( tmpname is not null) DO
          
set tmpName = CONCAT(tmpName ,";") ;
         
set allName = CONCAT(allName ,tmpName) ;
        
/*游标向下走一步*/ 
        
FETCH cur1 INTO tmpName;
      
END WHILE;
  
    
CLOSE cur1;
    
    
select allName ;
END;//
call useCursor()
//
 

运行结果:
mysql> call useCursor()//
+--------------------------------------+
| allName                              |
+--------------------------------------+
| f1;c3;c6;c5;c2;c4;c1;f1;f3;f4;f2;f5; |
+--------------------------------------+
1 row in set (0.00 sec)



posted @ 2008-04-27 17:05 G_G 阅读(7113) | 评论 (0)编辑 收藏

     摘要: level 类:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package hbm;import java.util.Set;/** * @hibernate.class table = "level" * where = " visible = ...  阅读全文

posted @ 2008-04-26 18:30 G_G 阅读(2388) | 评论 (0)编辑 收藏

你可以参考:快速修改 xdoclet samples ant -build.xml 适应实际开发
此文档为上面的改进版。

1.在 你电脑上建一个 ant第三方扩展文件夹,我这为:D:\ant\lib
2.当使用 eclipse->window->proferences..->ant->Runtime->Global Entries->Add External JARs->选择你建的 ant_lib 下的全部jar;
3.并在Global Entries下加入你的 classpath

使用现成的 xdoclet ant -> 加入自己的 ->
    <target name="hbm2ddl" depends="prepare">
          
<mkdir dir="${hbm2ddl.sql.dir}" />
          
<taskdef 
              
name="hbm2ddl"
             classname
="org.hibernate.tool.ant.HibernateToolTask" >
          
</taskdef>
          
<hbm2ddl destdir="${hbm2ddl.sql.dir}" >
                   
<configuration configurationfile="../src/hibernate.cfg.xml" />
                   
<hbm2ddl export="true" console="false" create="false" update="false" drop="false" outputfilename="bestunix.sql"/>
          
</hbm2ddl> 
           <!-- 支持 1.5 泛型请
搜索到xjavadoc最新1.5版本,下载,替换原来的xjavadoc-1.1.x,再次运行xdoclet任务,执行成功! -->
    
</target>

    
<target name="sql" depends="hbm2ddl">
        
         
<sql driver="org.gjt.mm.mysql.Driver" password=""  userid="root" autocommit="true"  
                       url
="jdbc:mysql://localhost:3306/zhongqi?characterEncoding=gbk" 
                        src
="../sql/data.sql" print="yes" output="sql_out.txt">  
              
</sql>  
    
</target>    

成功后就可以:
    使用 xdoclet 面向对象建表 ;
    通过 ant -> java2hbn, hbn2ddl,insertSql

在开发过程中当要加 jar 方法为:
    1.在 ant_lib 中加入 jar
    2.eclipse ->> Global Entries->Add External JARs->
工程转换修改 Global Entries中的classpath

例:
java
package hbm;

import java.util.Set;

/**
 * @hibernate.class table = "level"
 * where = " visible = 0  "
 * 
@author Administrator
 *
 
*/
public class Level {
    
private long id ;
    
private String name ;
    
private Level father ;
    
private Set<Level> childSet ;
    
private int visible  ;

    
public Level(){}
    
public Level(String name){  this.name = name ; }
    
    
public Level(String name,int visible){this.visible = visible;  this.name = name ; }
    
/**
     * @hibernate.id generator-class = "identity"
     * 
@return
     
*/
    
public long getId() {
        
return id;
    }
    
public void setId(long id) {
        
this.id = id;
    }
    
/**
     * @hibernate.property 
     * length = "20"
     * 
@return
     
*/
    
public String getName() {
        
return name;
    }
    
public void setName(String name) {
        
this.name = name;
    }
    
    
/**
     * @hibernate.many-to-one 
     * cascade = "save-update"
     * inverse = "false"
     * column = "fid"
     * 
@return
     
*/
    
public Level getFather() {
        
return father;
    }
    
public void setFather(Level father) {
        
this.father = father;
    }
    
    
/**
     * @hibernate.set 
     * lazy = "true"
     * table = "Level"
     * cascade = "save-update"
     * where = " visible = 0 "
     * @hibernate.collection-key column = "fid"
     * @hibernate.collection-one-to-many class = "hbm.Level"
     * 
@return
     
*/
    
public Set<Level> getChildSet() {
        
return childSet;
    }
    
public void setChildSet(Set<Level> childSet) {
        
this.childSet = childSet;
    }
    
    
/**
     * @hibernate.property 
     * 
@return
     
*/
    
public int getVisible() {
        
return visible;
    }
    
public void setVisible(int visible) {
        
this.visible = visible;
    }
}


unit
package test;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

import hbm.Level;

import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import unit.HibernateUtil;

public class HbnUnit {
    @Test
    
public void level() throws Exception {
        Session session 
= HibernateUtil.currentSession();
        Transaction tr 
=  session.beginTransaction();
        
        Level level 
= new Level();
        level.setName(
"f1");
        
        Set
<Level> set = new HashSet<Level>();
            set.add(
new Level("c1"));
            set.add(
new Level("c2",1));
            set.add(
new Level("c3"));
            set.add(
new Level("c4",1 ));
            set.add(
new Level("c5" ));
            set.add(
new Level("c6",1 ));
        
        level.setChildSet(set);
        session.save(level);
        session.flush() ;
        session.clear();
        tr.commit();

        
    }
    
    @Test
    
public void sAll() throws Exception {
        Session session 
= HibernateUtil.currentSession();
        
        System.out.println(
"---------------------------------------------");
        List
<Level> list =  session.createQuery(" from Level tl where tl.father is null ").list();
        
for( Level tmp : list ){
            System.out.println(
"---->" + tmp.getName()+" visible="+tmp.getVisible()  );
            
            
for(  Level tt : tmp.getChildSet() ){
                System.out.println( tt.getName()
+" visible="+tt.getVisible()  );
            }
            
        }
        System.out.println( list.get(
0).getVisible()+":"+ list.size() );
    }
    
}

结果:
Hibernate: insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: 
insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: 
insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: 
insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: 
insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: 
insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: 
insert into level (name, fid, visible) values (?, ?, ?)
Hibernate: 
update level set fid=where id=?
Hibernate: 
update level set fid=where id=?
Hibernate: 
update level set fid=where id=?
Hibernate: 
update level set fid=where id=?
Hibernate: 
update level set fid=where id=?
Hibernate: 
update level set fid=where id=?
---------------------------------------------
Hibernate: select level0_.id as id0_, level0_.name as name0_, level0_.fid as fid0_, level0_.visible as visible0_ from level level0_ where (  level0_.visible = 0 ) and (level0_.fid is null)
---->f1 visible=0
Hibernate: select childset0_.fid as fid1_, childset0_.id as id1_, childset0_.id as id0_0_, childset0_.name as name0_0_, childset0_.fid as fid0_0_, childset0_.visible as visible0_0_ from level childset0_ where  (  childset0_.visible = 0 )  and childset0_.fid=?
c1 visible
=0
c5 visible
=0
c3 visible
=0
0:1



posted @ 2008-04-25 11:31 G_G 阅读(1722) | 评论 (0)编辑 收藏

此代码可以直接使用


<body>
 
<a id='pi' href="" value="text"> text </a>
 
<div id='div1'/>
</body>
<script type="text/javascript"> 

function showByEvent(ev,divId){
        
//取得各浏览器 event 
        ev = ev || window.event;
        
//div
        var useDiv  = document.getElementById(divId);
        useDiv.style.position
="absolute";
            
if( useDiv.style.left=="" )useDiv.style.left = "50";
            
if( useDiv.style.top=="" )useDiv.style.top = "10";
            
if( useDiv.style.zIndex=="" )useDiv.style.zIndex = "1000";
            
if( useDiv.style.padding=="" )useDiv.style.padding = "0px";
            
if( useDiv.style.backgroundColor=="" )useDiv.style.backgroundColor = "#FFFFCC";
            
if( useDiv.style.color=="" )useDiv.style.color = "#201000";
            
if( useDiv.style.fontSize=="" )useDiv.style.fontSize = "12px";
            
if( useDiv.style.border=="" )useDiv.style.border ="1px   solid   #284860";
        
        
//得到处发事件的源element
      var actionBean =  null ;
        
if(  ev.srcElement ){
            actionBean 
= ev.srcElement 
        }
else{
            actionBean 
= ev.target;
        }
        
        
//处发事件 
        useDiv.onmousemove = function(){
                useDiv.style.visibility  
= "";
        }
        useDiv.onmouseout 
= function(){
                useDiv.style.visibility  
= "hidden";
            
        }
        actionBean.onmouseout 
=  function mouseOut(ev){
                useDiv.style.visibility  
= "hidden";
        }
        
        
//div 定位
        useDiv.style.left = actionBean.offsetTop+15 ;
    useDiv.style.top 
= actionBean.offsetLeft+15;
    
        
//返回类型为 div 显示的 x , y 和 target 处发源项 和 div
        return {
            y:  actionBean.offsetTop
+15  ,
            x:  actionBean.offsetLeft
+15 ,
            target:actionBean,
            div:useDiv
        }
}



//事件添加
document.getElementById('pi').onmousemove = function(ev){
      
var sbv = showByEvent(ev,"div1");
      
var bean = sbv.target ;
    
var dd = sbv.div;
    dd.style.visibility  
= "";
    dd.innerHTML 
= "<a href=http://www.baidu.com>删除"+bean.value+"</a><br>"+
                                    
"<a href=http://www.google.com>详细 by Id "+bean.id+"</a>";

};

</script>



posted @ 2008-04-23 17:41 G_G 阅读(1616) | 评论 (1)编辑 收藏

struts2-blank-2.0.11.1.war

web.xml:
<? xml version="1.0" encoding="UTF-8" ?>
< web-app  id ="WebApp_9"  version ="2.4"  xmlns ="http://java.sun.com/xml/ns/j2ee"  xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

    
< display-name > Struts Blank </ display-name >

    
< filter >
        
< filter-name > struts2 </ filter-name >
        
    <!--  struct 2 处理类  -->
    <!--
相应需要jar:
                commons-logging-1.0.4.jar

                freemarker-2.3.8.jar
                ognl-2.6.11.jar
                struts2-core-2.0.11.1.jar
                xwork-2.0.4.jar
    -->
< filter-class > org.apache.struts2.dispatcher.FilterDispatcher </ filter-class > </ filter >

     <!--   默认覆盖 全部 路径  -->
    
< filter-mapping >
        
< filter-name > struts2 </ filter-name >
        
< url-pattern > /* </ url-pattern >
    
</ filter-mapping >

    
<!--  初始页面  -->
    
< welcome-file-list >
        
< welcome-file > index.html </ welcome-file >
    
</ welcome-file-list >

</ web-app >

index.html:

    < head >
       
<!--  利用html 跳转  -->
       
< META  HTTP-EQUIV ="Refresh"  CONTENT ="0;URL=example/HelloWorld.action" >
    </ head >

struct.xml

   
<!--  模块化注入   -->
   
< include  file ="example.xml" />

    
<!--  Add packages here  -->
    



example.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="example" namespace="/example" extends="struts-default">

        
<!-- 域一般访问 -->
        
<action name="HelloWorld" class="example.HelloWorld">
            
<result>/example/HelloWorld.jsp</result>
        
</action>
<!--
HelloWord.java(国际化) start -->
<!--HelloWord.java(国际化) end-->


       
<!-- (关键:action利用正则选择方法)Login(_*)  >method="{1}"  -->
        
<action name="Login_*" method="{1}" class="example.Login">
            
<result name="input">/example/Login.jsp</result>
            
<result type="redirect-action">Menu</result>
        
</action>
<!-- example.Login(验证框架) start -->
java
Login-validation.xml

<!-- example.Login(验证框架) end -->



        
<!-- jsp 封包 如:Missing.action就是Missiong.jsp -->
        
<action name="*" class="example.ExampleSupport">
            
<result>/example/{1}.jsp</result>
        
</action>

        
<!-- Add actions here -->
    
</package>
</struts>






























posted @ 2008-04-21 17:51 G_G 阅读(1210) | 评论 (0)编辑 收藏

js 上

限制:<input type="text" size="4" value="10" name="fileSizeLimit" id="fileSizeLimit"/> K
<input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/>
<br>
<img src=http://blog.xunuo.com/blog/images/icons/23.gif id="fileChecker" alt="test"/>

<script type="text/javascript">
var oFileChecker = document.getElementById("fileChecker");

function changeSrc(filePicker)
{
    oFileChecker.src 
= filePicker.value;
}

oFileChecker.onreadystatechange 
= function ()
{
    
if (oFileChecker.readyState == "complete")
    {
        checkSize();
    }
}

function checkSize()
{
    
var limit  = document.getElementById("fileSizeLimit").value * 1024;

    
if (oFileChecker.fileSize > limit)
    {
        alert(
"too large");
    }
    
else
    {
        alert(
"ok");
    }
}
</script>  



IE
<html> 
<input type="file" name="file1" onchange="ShowSize(this.value)"> 
<script language="JavaScript"> 
<!-- 
function ShowSize(files) 

  
var fso,f; 
  fso
=new ActiveXObject("Scripting.FileSystemObject"); 
  f
=fso.GetFile(files); 
  alert( (f.size
/(1024*1024))+" Bytes"); 

//--> 
</script> 
</html>

posted @ 2008-04-15 18:07 G_G 阅读(1596) | 评论 (0)编辑 收藏


参考 :http://www.codebit.cn/pub/html/javascript/tip/mouse_position/
<script type="text/javascript"> 

function mousePosition(ev){
    //支持 火狐
    
if(ev.pageX || ev.pageY){
        
return {x:ev.pageX, y:ev.pageY};
    }
    //支持IE
    
return {
        x:ev.clientX 
+ document.body.scrollLeft - document.body.clientLeft,
        y:ev.clientY 
+ document.body.scrollTop - document.body.clientTop
    };
}

function mouseMove(ev){
    ev 
= ev || window.event;
    
var mousePos = mousePosition(ev);
        
       document.getElementById('div1').innerHTML 
= mousePos.x +":"+mousePos.y ;
       document.getElementById('div1').style.left 
= mousePos.x+10;
       document.getElementById('div1').style.top 
= mousePos.y+50;
}

//事件添加
document.onmousemove 
= mouseMove;


</script>
<body>
    
<p id='pi'></p>
    
<div id='div1'  style="position:absolute;  
  left:50;  
  top:10;  
  z-index:1000;  
  padding:0px;  
  background-color:#FFFFCC;  
  color:#201000;  
  font-size:12px;  
  border:1px   solid   #284860;
"></div>   
</body>

直接运行


posted @ 2008-04-15 13:41 G_G 阅读(3054) | 评论 (2)编辑 收藏

    权限设计的探讨阅读后感

    文章路径:http://www.chinaitpower.com/A200508/2005-08-07/183934.html

    权限设计通常包括数据库设计、应用程序接口(API)设计、程序实现三个部分。

    权限分类:

        首先是针对数据存取的权限,通常有录入、浏览、修改、删除四种。

        其次是功能,它可以包括例如统计等所有非直接数据存取操作,另外,我们还可能对一些关键数据表某些字段的存取进行限制。

 

 

权限表及相关内容大体可以用六个表来描述,如下: 
    1 拥有权限角色(即用户组):具体拥有权限描述实体。

    2 用户表:用户的描述,其它(如地址、电话等信息); 
    3 角色-用户对应表:该表记录用户与角色之间的对应关系(多对多关系),一个用户可以隶属于多个角色,一个角色组也可拥有多个用户。

    4 权限列表:程序所有权限列表。该表记录所有要加以控制的权限,如录入、修改、删除、执行等; 
    5 权限-角色-用户对应表权限对应角色(多对多关系)再由4表关系到用户

 

在探讨文中的第4条,我怎么都不太理解?望大家探讨。反向权限吗?那怎么和系统中的拥有一起描述?

 

下面提出一些自己的见解:

     1 用户表:用户的描述,其它(如地址、电话等信息); 

   2 权限列表:程序所有权限列表。该表记录所有要加以控制的权限,如录入、修改、删除、执行等; 
   3 权限树(模糊看成角色,但有些不同。树性结构,结构数据库中表外键自己):孩子接点继承父亲接点全部权限,并在次上扩充和删减权限建立自己分支。

   4 权限列表-权限树:(多对多关系)用于描述此权限树接点父亲接点权限继承下,由自己添加和消减的权限

                                        本表中用一列枚举列用于表示本纪录是添加或删减权限。

   5 用户-权限树:权限树接点对应用户(多对一)关系。

感觉自己的这种框架,能很好的扩充(在某接点下增,删某权限或直接找到最向近的一个权限树接点并继承)  

大家多说说自己的见解,和对比下这两个框架的一些优缺点把。本人随时恭听。G_G

与2008-4-7 22:50北京

google doc 原稿: http://docs.google.com/Doc?id=dkvfctc_16hgvfkbfs

 

posted @ 2008-04-07 22:49 G_G 阅读(2804) | 评论 (6)编辑 收藏

问题描述:实体类答案从属于实体类问题。(一对多)
 效果-》
    /**
     * 添加 问题 和 选项
     * 
@throws Exception
     
*/@Test
    
public void testQu() throws Exception {
        Session session 
= HibernateUtil.currentSession();
        Transaction tr 
= session.beginTransaction();
        
        
//级联添加
        Set options = new HashSet();
        Options op1 
= new Options();
        op1.setName(
"op1");
        options.add(op1);
        
        
        Options op2 
= new Options();
        op2.setName(
"op2");
        options.add(op2);
        
        
        Options op3 
= new Options();
        op3.setName(
"op3");
        options.add(op3);
        Problems problems 
= new Problems();
        
        problems.setName(
"problem_1");
        problems.setOptions(options);
        problems.setTdesc(
"tdesc");
        problems.setType(
1);
        
        Long ll 
= (Long)session.save(problems);
        
        
        System.out.println(ll);
        tr.commit();
       
mysql> select * from options ;
+----+------------+--------+------+---------+
| id | problemsid | answer | name | visible |
+----+------------+--------+------+---------+
|  1 |          1 |   NULL | op2  |       0 |
|  2 |          1 |   NULL | op3  |       0 |
|  3 |          1 |   NULL | op1  |       0 |
+----+------------+--------+------+---------+
3 rows in set (0.00 sec)

mysql> select * from problems ;
+----+-----------+------+-------+------------+---------+
| id | name      | type | tdesc | questionid | visible |
+----+-----------+------+-------+------------+---------+
|  1 | problem_1 |    1 | tdesc |       NULL |       0 |
+----+-----------+------+-------+------------+---------+
1 row in set (0.00 sec)


        
        
//级联删除
        tr.begin();
            session.delete( session.get(Problems.
class,ll) );
        tr.commit();

mysql> select * from problems ;
Empty set (0.00 sec)

mysql> select * from options ;
Empty set (0.00 sec) 


        HibernateUtil.closeSession();
    }

Options类
.......
    /**
     * @hibernate.many-to-one 
     *         cascade = "save-update"
     *         column = "Problemsid"
     *         class = "com.zhongqi.domain.Problems"
     * 
@return
     
*/
    
public Problems getProblems() {
        
return problems;
    }
............

Problems 类
    /**
     * @hibernate.set
     *         cascade="all-delete-orphan"
     *         inverse = "false"
     *         lazy = "true"
     *         @hibernate.collection-key  column = "problemsid"
     *         @hibernate.collection-one-to-many class = "com.zhongqi.domain.Options"
     * 
@return
     
*/
    
public Set getOptions() {
        
return options;
    }



posted @ 2008-04-02 10:07 G_G 阅读(2085) | 评论 (2)编辑 收藏

上一个blog中 粗略的使用了下分页标签使用 pg
使用问题还是有很多 如 分页中乱码、多java代码块
下面用一个 <jsp:include >来解决这些问题。
    <!-- 使用写好的分页jsp 当中需要参数为 count 总结果个数 / maxPageItems(可选默认10)页面显示行数 / goUrl (可选默认本页) 跳转路径 /  params  request中参数 应为乱码问题 传给下一个页面 需要使用URLDecoder.decode(...) 如:String productName = URLDecoder.decode( request.getParameter("productName")==null?"":request.getParameter("productName"),"utf8" );
     
    -->

    <jsp:include page="../jspUtil/page.jsp">
        
<jsp:param name="count" value="<%=OrderServiceImp.getOrdersCount(beginTime,endTime,userName,companyName,productName,null,zq)%>"  />
            
<jsp:param name="maxPageItems" value="10" />
        
            
<jsp:param name="goUrl" value="/zhongqi/seleProduct.do" />
        
        
<jsp:param name="params" value="beginTime" />
        
<jsp:param name="params" value="endTime" />
        
<jsp:param name="params" value="userName" />
        
<jsp:param name="params" value="companyName"/>
        
<jsp:param name="params" value="productName" />
        
    
</jsp:include>

page.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.net.URLEncoder"%>
<%@page import="java.net.URLDecoder"%>
<%@ taglib prefix="pg" uri="/WEB-INF/pager-taglib.tld" %>

<%
    int 
count = Integer.parseInt( request.getParameter("count") );
    int maxPageItems 
= Integer.parseInt( request.getParameter("maxPageItems")==null?"10":request.getParameter("maxPageItems") );
    
    //参数设置 <jsp:param name
="params" value="xx"  />
    String[] params = (String[])request.getParameterMap().get("params");
    
    String goUrl = request.getParameter("goUrl");
    
%>
<div id="bgee">
<div align="center">
<pg:pager
  
id="pager"
  url
="<%=goUrl%>"
  items
='<%=count%>'
  
maxPageItems="<%=maxPageItems %>"
  export
="offset,currentPageNumber=pageNumber"
  isOffset
="false"
  scope
="request">
  
   <
    for
( String str : params ) {
        if (request.getParameter(str) !
= null && !request.getParameter(str).equals("")) {%>
                
<pg:param name="<%=str %>" value='<%= URLEncoder.encode( URLDecoder.decode(request.getParameter(str),"utf-8"),"utf-8")%>'/>
        
<% }
    }%
>



<pg:index>
<pg:prev ifnull="true">
<span>
      
<% if (pageUrl != null) { %>
        
<HREF="<%= pageUrl %>">&lt; 上一页</A>
      
<% } %>
</span>
</pg:prev>

  
<pg:pages export="pageUrl, pageNumber">
<% if (pageNumber == currentPageNumber) { %>
 
<span><%= pageNumber %></span>
<%} else {%>
 
<href='<%=pageUrl%>'><%= pageNumber %></a>
<%}%>
</pg:pages>
<pg:next ifnull="true">
<% if (pageUrl != null) { %>
  
<href='<%=pageUrl%>'>下一页 &gt;</a>
<%}%>
</pg:next>
</pg:index>
</pg:pager>
    
</div>
</div>






posted @ 2008-04-01 16:13 G_G 阅读(2084) | 评论 (1)编辑 收藏

仅列出标题
共16页: First 上一页 2 3 4 5 6 7 8 9 10 下一页 Last