本来所有的题目存在数据库内,通过sql语句得到list放到一个域,读取这个域用for循环就所有的题目都显示出来到一张试卷里。现在我想要一个页面一次出现一道题目,点击下一题就下一题,上一题就上一题,这个应该是用什么思路去实现啊?求帮助啊~~~
首先应该有题库,在题库中选择试题生成一套试卷,试卷中有,试卷ID、试题ID、排序。答题选择试卷进行,上一题为序号减一,下一题序号加一,修改试卷需重新生成排序。######
实现方式很多,如果一次都查出来,那就前端处理呗,写js,只是需要写较多的js
也可以后端处理,一个jsp就展示一题,需要解决的问题是,如何找到下一题的记录?
其实无非就是维护一个上下题的关系,比如上题知道下题的ID,下题知道上题的ID,或者顺序规则,当前顺序加一减一就能找到上下题,这两种方式需要增加额外的数据库字段,创建/更新试卷时需维护这个字段,
1.这样就需要题目表有一个标识顺序的字段,且是连续的,需要创建的时候把顺序加进去,请求的下一题的时候只要把试卷ID和顺序字段传入后台就能查到具体题目
2.如果是第二种处理方式,那创建试卷的时候需要维护一个类似链表的结构,一条题目记录需要知道上下题的ID,上题为空的为第一个,下题为空的为最后一个,进入下一题只需要页面传入下一题的ID就可以拿到题目的数据
3.还有就是不新增字段,按其他字段顺序排序(甚至直接不排序,用默认的),就把试卷所有题目的list存入session,页面做下标记当前下标是几,去session取下一个题目的对象即可
4.如果懒得做session,那就直接写sql搞出个顺序来(比如oracle的rownum),然后页面按照第一条处理
呵呵 next pre
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。