我有一个Spring M V C项目,其中我也使用了display tag pagination和J-Query选项卡。一切都很好但是当我尝试在任何选项卡中从第1页移动到第2页的分页时,页面会刷新并且选项卡1再次处于活动状态。 {如果我在第二个标签中分页但我被重定向到第一个}
我发布我的代码供参考...... 请尽快帮忙......
控制器
@RequestMapping(value="/listquestions", method = RequestMethod.GET)
public ModelAndView getQuestions() {
Map<String, Object> model = new HashMap<String, Object>();
List<Question> Answered=questionService.getAnswerQuestion();
model.put("Answer", Answered);
List<Question> unAnswer=questionService.getUnAnswerQuestion();
model.put("unAnswer", unAnswer);
return new ModelAndView("jsp/AdminIndex", model);
}
D A O
@Override
public List<Question> getUnAnswerQuestion() {
session= sessionFactory.getCurrentSession();
Query query= session.createSQLQuery("select * from Question where ques_id not in (select ques_id from Answer) order by date desc");
@SuppressWarnings("unchecked")
List<Question> list=query.list();
return list;
}
@Override
public List<Question> getAnswerQuestion() {
session= sessionFactory.getCurrentSession();
Query query= session.createSQLQuery("select * from Question where ques_id in (select ques_id from Answer) order by date desc");
@SuppressWarnings("unchecked")
List<Question> list=query.list();
return list;
}
服务
@Override
public List<Question> getUnAnswerQuestion() {
return questionDao.getUnAnswerQuestion();
}
@Override
public List<Question> getAnswerQuestion() {
return questionDao.getAnswerQuestion();
}
查看页面
<div id="tabs" style="width: 650px">
<ul>
<li><a href="#tabs-1">Unanswered</a></li>
<li><a href="#tabs-2">Answered</a></li>
</ul>
<!-- Answered -->
<div id="tabs-2">
<display:table name="${Answer}" pagesize="10" sort="list" id="tmp3" requestURI="listquestions.html">
<display:column style="vertical-align:top; padding-top: 7px; text-align: center; width: 75px; color:black;" sortable="true" headerClass="sortable" title="Username">
<a href="/gtlqa/getadmuserdet.html?uname=${tmp3[8]}"> <img src="/gtlqa/resources/images/userpic.gif" /></a><br>
${tmp3[8]}
</display:column>
<display:column sortable="true" headerClass="sortable" style="padding-left: 10px; padding-top: 7px; width: 465px;" title="Question Title">
<a href="/gtlqa/getQuestionDet.html?quId=${tmp3[0]}"> <h3 style="color: #00c6ff"> ${tmp3[1]}</h3> </a>
</display:column>
</display:table>
</div>
<!-- Unanswered -->
<div id="tabs-1">
<display:table name="${unAnswer}" pagesize="10" sort="list" id="tmp2" requestURI="listquestions.html">
<display:column style="vertical-align:top; padding-top: 7px; text-align: center; width: 75px; color:black;" sortable="true" headerClass="sortable" title="Username">
<a href="/gtlqa/getadmuserdet.html?uname=${tmp2[8]}"> <img src="/gtlqa/resources/images/userpic.gif" /></a><br>
${tmp2[8]}
</display:column>
<display:column sortable="true" headerClass="sortable" style="padding-left: 10px; padding-top: 7px; width: 465px;" title="Question Title">
<a href="/gtlqa/getQuestionDet.html?quId=${tmp2[0]}"> <h3 style="color: #00c6ff"> ${tmp2[1]}</h3> </a>
</display:column>
</display:table>
</div>
</div>
答案 0 :(得分:0)
我们在我的项目上做了类似的事情 - 在同一页面上使用多个displaytag表格,这些表格包含在带标签的div容器中。
诀窍是:
对于#1,您可能希望register a click event listener包含整个分页横幅(包含分页链接)的元素。
然后,对于#2,检查event target以确保单击锚标记(表示分页链接)并{} {}为锚标记的href中的URL(因为displaytag是建立/管理这些URL上的参数。还要确保通过执行fire an AJAX GET request之类的操作来阻止点击事件冒泡链。如果您没有停止该事件,浏览器将把点击作为普通链接处理,并将窗口的位置重置为分页URL,这是您在OP中描述的,而不是您想要的。
对于#3,将tab div的内容移动到他们自己的JSP中,并为每个(a)获取该displaytag表和(b)将请求转发给新JSP以编写HTML响应。
对于#4,您的JavaScript回调/成功处理程序(函数)应该使用响应主体(HTML)并将其注入其父容器(表示选项卡的div)。为此,只需设置容器元素的innerHTML
属性。
请注意,通常情况下,此方法必须应用于任何页面,该页面需要包含多个具有活动分页或列排序<的displaytag表格/ em> links。