随机分页

随机分页查询数据库:
一、后台controller方法:

@RequestMapping(value="/setPn",method=RequestMethod.GET)
	@ResponseBody
	public String setPn(int count,HttpServletRequest request) {
		//设置固定的count 和 totalPage
		Random rand = new Random();
		//传入的查询40条数据,pn 的范围是:100-40=60 ,pn[0,60]随机数
		int pn = rand.nextInt(questionService.selChoiceSumNum()-count+1)+count;
		System.out.println(pn);
		request.getSession().setAttribute("totalPage",count+pn-1);
		request.getSession().setAttribute("count",count);
		request.getSession().setAttribute("pn",pn);
		return pn+"";
	}
		
	@RequestMapping(value="/findTitle",method=RequestMethod.GET)
	public String findNextTitle(Model model,
			HttpServletRequest request,@RequestParam("pn")int pn) {
		
		PageBean pageBean = new PageBean();
		//每页题目数量
		int pageSize = 1;
		//字段开始的记录索引
		int startPage;
		if(pn==1 || pn<1){
			startPage=0;
		}else{
			startPage = (pn-1)*pageSize;
		}
		int totalPage = (int) request.getSession().getAttribute("totalPage");
		int count = (int) request.getSession().getAttribute("count");
		int pn0 = (int) request.getSession().getAttribute("pn");
		
		pageBean.setPageSize(1);
		pageBean.setTotalRecord(totalPage);
		pageBean.setCurrentPage(pn);
		pageBean.setPn(pn0);
		
		QustChoice qustChoice = questionService.findSigleChoice(1,startPage,pageSize);
		model.addAttribute("qustChoice", qustChoice);
		model.addAttribute("count", count);
		model.addAttribute("cur", pn-pn0+1);
		model.addAttribute("pageBean", pageBean);
  	    
		return "analysis/online_choice";
	}

二、前台调用方法页面–zhuanxiangExam.jsp:

	<!-- 按照试题类型 -->
	  <tr>
		  <td rowspan="4"><h1>按照试题类型</h1></td>
		  <td>选择题</td>
		  <td>请输入题目数量:<input id="choice" type="text" name="count"/></td>
		  <td><a href="javascript:showChoiceTitle()">进入练习</a></td>
	  </tr>
	<!--注意(参数传递):input标签中name的值,就是后台要接受的参数值-->
	function showChoiceTitle(){
		var count = $("#choice").val();
		$.ajax({
			url:"${APP_PATH}/group/setPn.do",
			type:"GET",
			data:"count="+count,
			success:function(result){
				alert(result)
					$(location).prop('href', '${APP_PATH}/group/findTitle.do?pn='+result);
			}
		})
	};

三、前台页面显示页面–online_choice.jsp

<!--数据库数据显示部分-->
<div class="subject-question">
	 <p>题目${pageBean.currentPage }:<c:out value="${qustChoice.choiceInfo }"></c:out></p>
</div>
	<a href="javascript:void(0);" class="subject-options" data-id="35152">
		<label class="radio" id="component_0_checkbox_0">
		<span class="icons"></span>
		<input type="radio" data-toggle="radio" value="35152">
		<pre>A:<c:out value="${qustChoice.choiceOp1 }"></c:out></pre>
		</label>
	</a>
<!--分页部分-->
<div class="subject-action clearfix">
<div class="subject-opr">
	<a href="javascript:void(0);" data-id="22454" class="js-follow collect-subject nc-req-auth">收藏本题</a>
</div>
<div class="subject-next">
		<input id="finsh" type="button"  name="button1" class="btn warning-btn" value="交卷" onclick="finshexam()">
			<a href="${APP_PATH }/group/findTitle.do?pn=0">
				<input id="before" type="button" name="button2" class="btn btn-primary" value="第一题">	
			</a>
		<c:if test="${pageBean.hasPrev }">
			<a href="${APP_PATH }/group/findTitle.do?pn=${pageBean.currentPage-1}">
				<input id="before" type="button" name="button2" class="btn btn-primary" value="上一题">
			</a>
		</c:if>
		<c:if test="${pageBean.hasNext }">
			<a href="${APP_PATH }/group/findTitle.do?pn=${pageBean.currentPage+1}">
				<input id="before" type="button" name="button2" class="btn btn-primary" value="下一题">
			</a>
		</c:if>
		<br/>
	<h2>总共${count }题,当前第${cur }题</h2><br/>
</div>
</div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值