在手机上使用高德地图定位时间间隔时,用不用登录注册??

JSP的分页标签,支持直接地址和JS方法两种翻页方式 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 14时,
怎么介绍呢?哈,版权是我滴,转载请注明出处。就这样吧。
代码片段(6)
PageTag.java&~&8KB&&&&
package com.myweb.web.
import java.io.IOE
import javax.servlet.jsp.JspE
import javax.servlet.jsp.tagext.TagS
import com.myweb.web.util.P
public class PageTag extends TagSupport {
private static final long serialVersionUID = 822614L;
* 显示的页码个数
private static final Long SHOW_PAGE_NO = 5L;
* 默认的跳转地址
private static final String DEF_URL = "javascript:";
* 不可用Class时样式后缀
private static final String GRAY = "_gray";
* 当前页的class样式后缀
private static final String NOW = "_now";
* 页码标记:这样的标记会被替换成正在合适的数字页码
private static final String PAGE_NO_FLAG = "{page}";
private static final String LOCATION_HREF = "window.location.href =\"";
private static final String WINDOW_EVENT = "\";if (window.event)window.event.returnValue = false";
* page对象
* 翻页时的地址
* 是否显示通告
private Boolean notice = Boolean.TRUE;
* 是否显示快速跳页输入框
private Boolean fastJump = Boolean.FALSE;
* 显示的页数
private Long showNO = SHOW_PAGE_NO;
private Long totalNO;// 设置page时自动计算的总页数
private String autoU// 经过结算后得出的翻页地址
private Boolean isF// 是否是js方法
public int doStartTag() throws JspException {
StringBuilder sb = new StringBuilder();
sb.append("&div class='page'&");
if (notice) {
sb.append("&div class='page_notice'&共&span class='page_notice_total'& ");
sb.append(page.getTotal());
sb.append("&/span&条记录,每页 &span
class='page_notice_size'&");
sb.append(page.getPageSize());
sb.append("&/span&条&/div&");
sb.append("&div class='page_number'&&ul&");
sb.append(getLi(PageType.FIRST, Page.DEF_PAGE_NUM));
sb.append(getLi(PageType.OVER, page.getPageNO() - 1));
sb.append(getLi(PageType.BEFORE_OMIT, null));
if (page.getPageNO() &= showNO / 2) {// 在可分页的开头
Long subNO = (showNO & totalNO ? totalNO : showNO);
addLi(sb, subNO, subNO);
} else if (totalNO &= showNO / 2 + page.getPageNO()) {// 在可分页的结尾
Long subNO = (showNO & totalNO ? totalNO : showNO);
addLi(sb, totalNO, subNO);
} else {// 在可分页的中部
addLi(sb, page.getPageNO() + showNO / 2, showNO);
sb.append(getLi(PageType.AFTER_OMIT, null));
sb.append(getLi(PageType.NEXT, page.getPageNO() + 1));
sb.append(getLi(PageType.LAST, totalNO));
if (fastJump) {
sb.append("&li class='page_number_input'&&input /&&/li&");
sb.append("&li class='page_number_submit' onclick='");
sb.append(getSubmit());
sb.append("'&确定&/li&");
sb.append("&/ul&&/div&&/div&");
pageContext.getOut().println(sb.toString());
} catch (IOException e) {
throw new JspException(e);
return SKIP_BODY;
* 获得确定按钮的HTML代码
private StringBuilder getSubmit() {
StringBuilder sb = new StringBuilder();
sb.append(DEF_URL);
sb.append("(function(e){var v=e.previousSibling.firstChild.v=v&");
sb.append(totalNO);
sb.append("?v&1?1:v:");
sb.append(totalNO);
sb.append(";if(v==");
sb.append(page.getPageNO());
sb.append("){};");
if (this.isFunction) {
sb.append(url.replace(PAGE_NO_FLAG, "v"));
sb.append(LOCATION_HREF);
int index = 0;
if ((index = url.indexOf(PAGE_NO_FLAG)) != -1) {
sb.append(url.substring(0, index));
sb.append("\"+v+\"");
sb.append(url.substring(index + PAGE_NO_FLAG.length()));
sb.append(WINDOW_EVENT);
sb.append(";})(this);");
* 向StringBuilder中追加分页li
* @param sb
* @param sub
从某值循环loopNO次后到达的值
* @param loopNO
private void addLi(StringBuilder sb, Long sub, Long loopNO) {
while (loopNO-- & 0) {
sb.append(getLi(PageType.GENERAL, sub - loopNO));
* 综合页类型和页码计算翻页地址的li
* @param pageNO
private StringBuilder getLi(PageType pageType, Long pageNO) {
StringBuilder sb =
switch (pageType) {
case FIRST:
sb = getLi(this.totalNO & 2 || page.getPageNO() & 2, GRAY,
pageType, pageNO, "首页");
case OVER:
sb = getLi(this.totalNO & 2 || page.getPageNO() & 2, GRAY,
pageType, pageNO, "&");
case NEXT:
sb = getLi(this.totalNO & 2
|| page.getPageNO().equals(this.totalNO), GRAY, pageType,
pageNO, "&");
case LAST:
sb = getLi(this.totalNO & 2
|| page.getPageNO().equals(this.totalNO), GRAY, pageType,
pageNO, "末页");
case BEFORE_OMIT:
sb = getOmitLi(
totalNO & showNO
&& showNO / 2 + showNO % 2 & page.getPageNO(),
pageType);
case AFTER_OMIT:
sb = getOmitLi(totalNO & showNO
&& showNO / 2 + page.getPageNO() & totalNO, pageType);
case GENERAL:
sb = getLi(pageNO.equals(page.getPageNO()), NOW, pageType, pageNO,
* 获得忽略li标签
* @param rule
* @param pageType
private StringBuilder getOmitLi(Boolean rule, PageType pageType) {
if (rule) {
StringBuilder sb = new StringBuilder("&li class='page_number_");
sb.append(pageType.getValue());
sb.append("'&...&/li&");
return new StringBuilder("");
* 获得标准li标签
* @param rule
* @param trueRuleText
* @param pageType
* @param pageNO
* @param showText
private StringBuilder getLi(Boolean rule, String trueRuleText,
PageType pageType, Long pageNO, Object showText) {
StringBuilder sb = new StringBuilder("&li class='page_number_");
sb.append(pageType.getValue());
if (rule) {
sb.append(trueRuleText);
sb.append("' onclick='");
sb.append(autoUrl.replace(PAGE_NO_FLAG, String.valueOf(pageNO)));
sb.append("'&");
sb.append(showText);
sb.append("&/li&");
* 在set进url后自动计算需要的地址
private void setAutoUrl() {
StringBuilder sb = new StringBuilder();
sb.append(DEF_URL);
// 要考虑可能是js方法的情况,如果是js方法时,则必有()这样的括号
this.isFunction = url.indexOf("(") & url.indexOf(")");
if (this.isFunction) {
sb.append(url);
sb.append(LOCATION_HREF);
sb.append(url);
sb.append(WINDOW_EVENT);
sb.append(";");
this.autoUrl = sb.toString();
public void setPage(Page page) {
this.page =
this.totalNO = page.getTotal() / page.getPageSize()
+ (page.getTotal() % page.getPageSize() == 0 ? 0 : 1);
this.totalNO = this.totalNO & 1 ? 1 : this.totalNO;
public void setUrl(String url) {
this.url =
setAutoUrl();
public void setNotice(Boolean notice) {
this.notice =
public void setShowNO(Long showNO) {
this.showNO = showNO;
public Boolean getFastJump() {
return fastJ
public void setFastJump(Boolean fastJump) {
this.fastJump = fastJ
private static enum PageType {
FIRST("first"),
OVER("over"),
NEXT("next"),
LAST("last"),
* 前忽略页
BEFORE_OMIT("omit"),
* 后忽略页
AFTER_OMIT("omit"),
GENERAL("li");
private PageType(String value) {
this.value =
public String getValue() {
Page.java&~&2KB&&&&
package com.myweb.web.
import org.apache.log4j.L
public class Page {
private static final Logger log = Logger.getLogger(Page.class);
* 默认页码
public static final Long DEF_PAGE_NUM = 1L;
* 默认页记录条数
public static final Long DEF_PAGE_SIZE = 20L;
* 页码:默认1
private Long pageNO;
* 每页数据条数:默认10
private Long pageS
* 起始位置
* 结束位置
* 数据总量
public Page() {
this(DEF_PAGE_NUM);
public Page(Long pageNO) {
this(pageNO, DEF_PAGE_SIZE);
public Page(Long pageNO, Long pageSize) {
this.pageNO = pageNO != null && pageNO & 0 ? pageNO : DEF_PAGE_NUM;
this.pageSize = pageSize != null && pageSize & 0 ? pageSize : DEF_PAGE_SIZE;
this.start = (this.pageNO - 1) * this.pageS
this.end = this.start + this.pageS
public Long getPageNO() {
return pageNO;
public Long getPageSize() {
return pageS
public Long getStart() {
public Long getEnd() {
public Long getTotal() {
if (total == null) {
log.error("当前Page对象没有设置total,正在尝试获得一个无效的total。已自动设置成0");
total = 0L;
* 对Page对象setTotal有助于矫正start和end,从而获得一个正确的分页位置
* @param total
public void setTotal(Long total) {
this.total =
if (this.end & total) {
this.end =
Long mod = total % pageS
this.start = total - (mod == 0 ? pageSize : mod);
this.start = this.start & 0 ? 0 : this.
this.pageNO = this.start / pageSize + 1;
web.xml&~&2KB&&&&
&!--因为上传文件的限制,所以,此文件原后缀名为.tld--&
&taglib version="2.0" xmlns="/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"&
&tlib-version&0.9&/tlib-version&
&short-name&myweb&/short-name&
&uri&/tags&/uri&
&name&page&/name&
&tag-class&com.myweb.web.tag.PageTag&/tag-class&
&body-content&empty&/body-content&
&attribute&
&name&page&/name&
&required&true&/required&
&rtexprvalue&true&/rtexprvalue&
&description&page对象&/description&
&/attribute&
&attribute&
&name&url&/name&
&required&true&/required&
&rtexprvalue&true&/rtexprvalue&
&description&跳转的url:可以说地址或者js方法,url中的{page}字符串会被替换成合适的数字页码&/description&
&/attribute&
&attribute&
&name&notice&/name&
&required&false&/required&
&rtexprvalue&true&/rtexprvalue&
&description&是否显示总的通告,默认显示&/description&
&/attribute&
&attribute&
&name&showNO&/name&
&required&false&/required&
&rtexprvalue&true&/rtexprvalue&
&type&number&/type&
&description&显示的页码个数,默认5个&/description&
&/attribute&
&attribute&
&name&fastJump&/name&
&required&false&/required&
&rtexprvalue&true&/rtexprvalue&
&description&是否显示快速跳页输入框,默认不显示&/description&
&/attribute&
怎么用呢?&~&597B&&&&
package com.myweb.web.
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestP
import com.myweb.web.util.P
@Controller
@RequestMapping(value = "/index")
public class IndexCon extends BaseController {
@RequestMapping
public String index(
@RequestParam(value = "page", required = false, defaultValue = "5") long pageNO) {
Page page = new Page(pageNO);
page.setTotal(160L);
modelMap.put("page", page);
return "index";
怎么用呢?&~&405B&&&&
&%@ page language="java" contentType="text/ charset=UTF-8" pageEncoding="UTF-8"%&
&%@taglib uri="/jsp/jstl/core" prefix="c"%&
&%@taglib uri="/jsp/jstl/fmt" prefix="fmt"%&
&%@taglib uri="/jsp/jstl/functions" prefix="fn"%&
&%@taglib uri="/WEB-INF/tag/web.tld" prefix="i"%&
&c:set var="webPath" value="${pageContext.request.contextPath}"/&
怎么用呢?&~&1KB&&&&
&%@ page language="java" contentType="text/ charset=UTF-8"
pageEncoding="UTF-8"%&
&%@include file="/WEB-INF/views/common/tag.jsp" %&
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
&meta http-equiv="Content-Type" content="text/ charset=UTF-8"&
&title&登录页面&/title&
&jsp:include page="/WEB-INF/views/common/common.jsp"/&
&jsp:include page="/WEB-INF/views/common/top.jsp"/&
===============================================================&&&&&&这是一个翻页演示,通过地址翻页
&i:page url="${webPath}/index?page={page}" page="${page}" showNO="6"/&
================================================================&&&&&这是一个翻页演示,通过js翻页
&i:page url="nuPage({page})" page="${page}"/&
=================================================================&&&&&快速登录,注册
&script type="text/javascript"&
function nuPage( page){
alert("我要做一些事情来完成翻页,\n比如通过ajax加载刷新列表部分的数据来完成一个翻页,\n同时翻页完了要做一些其他的js处理");
alert("你已经翻到了第 "+page+" 页");
&br/&&br/&&br/&&br/&
&jsp:include page="/WEB-INF/views/common/footer.jsp"/&
开源中国-程序员在线工具:
相关的代码(843)
额,只看到有收藏,都没人评论的啊。
开源从代码分享开始
sxgkwei的其它代码1、本版块发布帖子不加分,不扣分&br&
2、如果有必要和足够的信任,阳光可以做中间人&br&3、交流请去交流版块&br&4、超过20M的代码请申请FTP上传
- [回帖奖励
- [售价 2 锭阳光币]
阳光推荐 /2
阳光网驿2016管理团队全新招募,欢迎踊跃参与 。愿我们迈出的每个步伐,都有你的力量。
注册激活简道云即送30个阳光币,还有机会赢取小米平板,名额不多,马上行动吧}

我要回帖

更多关于 高德地图定位时间间隔 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信