onclick功能为点击跳转到page+或-1的页面,但是点击上一页全部跳转到-1,并且下一页和尾页按钮无法显示,将下一页按钮删去后尾页按钮可以显示并且可以跳转,可以知道的是中间上一页和下一页的功能有问题,但不知道错哪了。而且disabled标签也是失效的
<div style="width:60%;margin-left:20%;border:0px solid red;padding-top:4px;" class="center" th:each="pageNO : ${session.pageNO}">
<input type="button" value="首 页1" class="btn" th:onclick="|page(1)|" th:disabled="${session.pageNo==1}"/>
<input type="button" value="上一页" class="btn" th:onclick="|page(${pageNo-1})|" th:disabled="${pageNo==1}"/>
<input type="button" value="下一页" class="btn" th:onclick="|page(${pageNo+1})|" th:disabled="${pageNo==session.pageCount}"/>
<input type="button" value="尾页" class="btn" th:onclick="|page(${session.pageCount})|" th:disabled="${pageNo==session.pageCount}"/>
</div>
servlet代码
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int pageNo=1;
String pagestr=req.getParameter("pageNo");
if(StringUtil.isnotEmpty(pagestr)){
pageNo = Integer.parseInt(pagestr);
}
HttpSession session=req.getSession();
session.setAttribute("pageNO",pageNo);
FruitDAO fruitDAO=new fruitdaoimpl();
int fruitcount=fruitDAO.getfruitcount();
int pageCount=(fruitcount+5-1)/5;
session.setAttribute("pageCount",pageCount);
List<Fruit> fruitList = fruitDAO.getFruitList(pageNo);
//保存作用域
session.setAttribute("fruitList",fruitList);
super.processTemplate("index",req,resp);
}
【以下回答由 GPT 生成】
根据代码和描述,有以下几个问题需要解决:
disabled
标签没有起作用。问题的根源在于Thymeleaf模板中的表达式${pageNo-1}
没有正确解析。
在Thymeleaf的表达式中,当使用数值运算时,需要使用+
和-
来代替数学运算符+
和-
。所以${pageNo-1}
应改为${pageNo-1}
。
修改后的代码如下:
<div style="width:60%;margin-left:20%;border:0px solid red;padding-top:4px;" class="center" th:each="pageNO: ${session.pageNO}">
<input type="button" value="首 页1" class="btn" th:onclick="|page(1)|" th:disabled="${session.pageNo==1}"/>
<input type="button" value="上一页" class="btn" th:onclick="|page(${pageNo-1})|" th:disabled="${pageNo==1}"/>
<input type="button" value="下一页" class="btn" th:onclick="|page(${pageNo+1})|" th:disabled="${pageNo==session.pageCount}"/>
<input type="button" value="尾页" class="btn" th:onclick="|page(${session.pageCount})|" th:disabled="${pageNo==session.pageCount}"/>
</div>
问题的原因是在${pageNo==session.pageCount}
表达式中,变量pageNo
没有正确引用。
因为在th:each
指令中定义了一个迭代变量pageNO
,所以在表达式中需要使用pageNO
而不是pageNo
。
修改后的代码如下:
<div style="width:60%;margin-left:20%;border:0px solid red;padding-top:4px;" class="center" th:each="pageNO: ${session.pageNO}">
<input type="button" value="首 页1" class="btn" th:onclick="|page(1)|" th:disabled="${session.pageNo==1}"/>
<input type="button" value="上一页" class="btn" th:onclick="|page(${pageNO-1})|" th:disabled="${pageNO==1}"/>
<input type="button" value="下一页" class="btn" th:onclick="|page(${pageNO+1})|" th:disabled="${pageNO==session.pageCount}"/>
<input type="button" value="尾页" class="btn" th:onclick="|page(${session.pageCount})|" th:disabled="${pageNO==session.pageCount}"/>
</div>
disabled
标签没有起作用disabled
标签无法实现的原因是HTML中的按钮默认是可点击的,不管有没有设置disabled
属性都可以点击。
要解决这个问题,我们需要使用Thymeleaf的th:attr
标签来设置disabled
属性。
修改后的代码如下:
<div style="width:60%;margin-left:20%;border:0px solid red;padding-top:4px;" class="center" th:each="pageNO: ${session.pageNO}">
<input type="button" value="首 页1" class="btn" th:onclick="|page(1)|" th:disabled="${session.pageNo==1}"/>
<input type="button" value="上一页" class="btn" th:onclick="|page(${pageNO-1})|" th:attr="disabled=${pageNO==1} ? 'disabled' : null"/>
<input type="button" value="下一页" class="btn" th:onclick="|page(${pageNO+1})|" th:attr="disabled=${pageNO==session.pageCount} ? 'disabled' : null"/>
<input type="button" value="尾页" class="btn" th:onclick="|page(${session.pageCount})|" th:attr="disabled=${pageNO==session.pageCount} ? 'disabled' : null"/>
</div>
以上就是解决Thymeleaf标签失效的问题的具体步骤。根据问题描述和代码分析,我们找到了问题的根源并提供了相应的解决方案。
【相关推荐】