操作成功 <c:choose> <c:when test="${news.rule==0 }"><a href="index.jsp">返回</a></c:when> <c:otherwise><a href="index2.jsp"></c:otherwise> </c:choose>修改这段代码使通过不同rule访问到不同的index页面

时间: 2023-08-14 11:21:14 浏览: 61
可以使用多个<c:when>标签来实现不同规则对应不同的页面,修改后的代码如下: ```html <c:choose> <c:when test="${news.rule==0}"> <a href="index.jsp">返回</a> </c:when> <c:when test="${news.rule==1}"> <a href="index1.jsp">返回</a> </c:when> <c:when test="${news.rule==2}"> <a href="index2.jsp">返回</a> </c:when> <c:otherwise> <a href="index3.jsp">返回</a> </c:otherwise> </c:choose> ``` 在这个例子中,当${news.rule}的值为0时,跳转到index.jsp页面;当值为1时,跳转到index1.jsp页面;当值为2时,跳转到index2.jsp页面;否则跳转到index3.jsp页面。
相关问题

<form action="SelectNews" method="post"> 请输入查询条件:<input type="text" name="key"> <input type="submit" value="查询"> </form><br> <table border="1" width="70%" cellpadding="0" cellspacing="0"> <tr align="center"> <td>编号</td> <td>标题</td> <td>类型</td> <td>发布人</td> <td>发布日期</td> <td>状态</td> <td>是否头条</td> <td colspan="4">操作</td> </tr> <c:forEach items="${newsList }" var="news"> <tr align="center"> <td>${news.nid }</td> <td>${news.title }</td> <td>${news.type }</td> <td>${news.userName }</td> <td>${news.pubtime }</td> <td> <c:choose> <c:when test="${news.state==0 }">待审核</c:when> <c:when test="${news.state==1 }">通过</c:when> <c:otherwise>未通过</c:otherwise> </c:choose> </td> <td> <c:choose> <c:when test="${news.top==0 }">否</c:when> <c:otherwise>是</c:otherwise> </c:choose> </td> <td>${news.top==0?"是":"否" }</td> <td> <a href="NewsDetail?nid=${news.nid }&op=show">查看</a> <a href="NewsDetail?nid=${news.nid }&op=update">修改</a> <c:if test="${user.rule==0 }"> <a href="newsDelete.jsp?nid=${news.nid }">&nbsp;&nbsp;删除</a> </c:if> <c:if test="${user.rule==0 }">&nbsp;&nbsp;审核</c:if> </td> </tr> </c:forEach> </table>这是前端代码如何优化为上文你所陈述的代码

好的,为了实现批量删除,我们需要将前端页面中的删除按钮改为复选框,并在表单中添加一个提交按钮。同时,我们还需要给每个复选框设置一个value属性,用于存储对应新闻的ID。修改后的代码如下: ```html <form action="batchDeleteNews" method="post"> 请输入查询条件:<input type="text" name="key"> <input type="submit" value="查询"><br><br> <table border="1" width="70%" cellpadding="0" cellspacing="0"> <tr align="center"> <td>选择</td> <td>编号</td> <td>标题</td> <td>类型</td> <td>发布人</td> <td>发布日期</td> <td>状态</td> <td>是否头条</td> <td colspan="4">操作</td> </tr> <c:forEach items="${newsList}" var="news"> <tr align="center"> <td><input type="checkbox" name="newsIds" value="${news.nid}"></td> <td>${news.nid}</td> <td>${news.title}</td> <td>${news.type}</td> <td>${news.userName}</td> <td>${news.pubtime}</td> <td> <c:choose> <c:when test="${news.state==0 }">待审核</c:when> <c:when test="${news.state==1 }">通过</c:when> <c:otherwise>未通过</c:otherwise> </c:choose> </td> <td> <c:choose> <c:when test="${news.top==0 }">否</c:when> <c:otherwise>是</c:otherwise> </c:choose> </td> <td>${news.top==0?"是":"否"}</td> <td> <a href="NewsDetail?nid=${news.nid}&op=show">查看</a> <a href="NewsDetail?nid=${news.nid}&op=update">修改</a> <c:if test="${user.rule==0}"> <a href="javascript:void(0);" onclick="deleteNews(${news.nid})">&nbsp;&nbsp;删除</a> </c:if> <c:if test="${user.rule==0}">&nbsp;&nbsp;审核</c:if> </td> </tr> </c:forEach> </table> <button type="submit">批量删除</button> </form> ``` 上面的代码中,我们给复选框设置了name属性为"newsIds",并将对应的新闻ID作为value值传递到后端。在表格的最后,我们添加了一个提交按钮,用于提交批量删除的请求。同时,我们还将原来的删除按钮改为了一个超链接,点击时会执行一个JavaScript函数,用于删除单个新闻。

给下面代码增加分页功能,要求细致,逻辑清楚,<form action="./../selectNews" method="post"> <input type="text" name="key" id="key" placeholder="请输入标题"/> <input type="submit" value="查询"/> <a href="zhuce.jsp">发布新闻</a> <a href="../user01/index.jsp">返回主页</a> </form> <table> <thead> <tr> <th>新闻编号</th> <th>新闻标题</th> <%-- <th>新闻内容</th>--%> <th>新闻类别</th> <th>发布人</th> <th>发布时间</th> <th>状态</th> <th>是否头条</th> <th colspan="4" align="center">操作</th> </tr> </thead> <tbody> <c:forEach items="${newslist}" var="u"> <tr> <td>${u.nid}</td> <td>${u.title}</td> <%-- <td>${u.content}</td>--%> <td>${u.type}</td> <td>${u.userName}</td> <td>${u.pubTime}</td> <td> <c:choose> <c:when test="${u.state==0}"><span style="color: ghostwhite">未审核</span></c:when> <c:when test="${u.state==1}"><span style="color: green">审核通过</span></c:when> <c:otherwise><span style="color: red">未通过</span></c:otherwise> </c:choose> </td> <td> <c:choose> <c:when test="${u.top==0}">否</c:when> <c:otherwise>是</c:otherwise> </c:choose> </td> <c:choose> <c:when test="${user.rule==1}"> <td> <a href="../NewsDetailServlet?nid=${u.nid}&op=show">查看</a> </td> <td> <a href="../NewsDetailServlet?nid=${u.nid}&op=update">修改</a> </td> <td> <a href="NewsDelete.jsp?nid=${u.nid}&title=${u.title}&userName=${user.userName}">删除</a> </td> <td> <a href="Newsshenhe.jsp?nid=${u.nid}&title=${u.title}&userName=${user.userName}">审核</a> </td> </c:when> <c:when test="${user.rule==0 && user.uid==u.uid}"> <td><a href="../NewsDetailServlet?nid=${u.nid}&op=show">查看</a></td> <td><a href="../NewsDetailServlet?nid=${u.nid}&op=update">修改</a></td> <td><a href="NewsDelete.jsp?nid=${u.nid}&title=${u.title}&userName=${user.userName}">删除</a></td> </c:when> <c:otherwise> <td><a href="../NewsDetailServlet?nid=${u.nid}&op=show">查看</a></td> </c:otherwise> </c:choose> </tr> </c:forEach> </table>

首先,我们需要在表单中添加一个分页控件,例如: <form action="./../selectNews" method="post"> <input type="text" name="key" id="key" placeholder="请输入标题"/> <input type="submit" value="查询"/> <a href="zhuce.jsp">发布新闻</a> <a href="../user01/index.jsp">返回主页</a> <!-- 分页控件 --> <div class="pagination"> <c:if test="${currentPage > 1}"> <a href="./../selectNews?page=${currentPage - 1}&key=${param.key}">上一页</a> </c:if> <c:forEach begin="${minPage}" end="${maxPage}" var="i"> <c:choose> <c:when test="${i == currentPage}"> <span class="current">${i}</span> </c:when> <c:otherwise> <a href="./../selectNews?page=${i}&key=${param.key}">${i}</a> </c:otherwise> </c:choose> </c:forEach> <c:if test="${currentPage < totalPages}"> <a href="./../selectNews?page=${currentPage + 1}&key=${param.key}">下一页</a> </c:if> </div> </form> 我们使用了一个名为 "pagination" 的 div 元素来包含分页控件。其中,currentPage 表示当前页数,totalPages 表示总页数,minPage 和 maxPage 分别表示当前页数左边和右边的页数范围。 在 Java Servlet 中,我们需要对请求参数进行解析,计算出分页所需的各个参数,并将它们传递给 JSP 页面。例如: int page = Integer.parseInt(request.getParameter("page")); int pageSize = 10; // 每页显示的记录数 int start = (page - 1) * pageSize; // 计算起始记录数 String key = request.getParameter("key"); List<News> newslist = NewsDAO.selectNews(start, pageSize, key); int totalCount = NewsDAO.getNewsCount(key); int totalPages = (int) Math.ceil(totalCount * 1.0 / pageSize); int minPage = Math.max(1, page - 5); int maxPage = Math.min(totalPages, page + 5); request.setAttribute("newslist", newslist); request.setAttribute("currentPage", page); request.setAttribute("totalPages", totalPages); request.setAttribute("minPage", minPage); request.setAttribute("maxPage", maxPage); request.getRequestDispatcher("newslist.jsp").forward(request, response); 在 JSP 页面中,我们需要根据传递过来的参数来生成分页控件。我们可以使用 JSTL 标签库中的 forEach 标签来循环生成分页链接。例如: <c:if test="${currentPage > 1}"> <a href="./../selectNews?page=${currentPage - 1}&key=${param.key}">上一页</a> </c:if> <c:forEach begin="${minPage}" end="${maxPage}" var="i"> <c:choose> <c:when test="${i == currentPage}"> <span class="current">${i}</span> </c:when> <c:otherwise> <a href="./../selectNews?page=${i}&key=${param.key}">${i}</a> </c:otherwise> </c:choose> </c:forEach> <c:if test="${currentPage < totalPages}"> <a href="./../selectNews?page=${currentPage + 1}&key=${param.key}">下一页</a> </c:if> 注意,我们在分页链接中传递了当前页数和查询关键字两个参数,这样在用户点击分页链接时就可以保持查询关键字不变,同时跳转到相应的页数。 最后,我们需要在查询语句中添加 LIMIT 子句来限制返回的记录数。例如: SELECT * FROM news WHERE title LIKE '%${key}%' LIMIT ${start}, ${pageSize}; 其中,${start} 和 ${pageSize} 分别表示起始记录数和每页显示的记录数。这样就可以实现分页功能了。

相关推荐

新闻发布系统>>新闻管理>>查询新闻
<form action="SelectNews" method="post"> 请输入查询条件:<input type="text" name="key"> <input type="submit" value="查询"> </form>
编号 标题 类型 发布人 发布日期 状态 是否头条 操作 <c:forEach items="${newsList }" var="news"> <input type="checkbox" name="newsIds" value="${news.nid}"> ${news.nid } ${news.title } ${news.type } ${news.userName } ${news.pubtime } <c:choose> <c:when test="${news.state==0 }">待审核</c:when> <c:when test="${news.state==1 }">通过</c:when> <c:otherwise>未通过</c:otherwise> </c:choose> <c:choose> <c:when test="${news.top==0 }">否</c:when> <c:otherwise>是</c:otherwise> </c:choose> ${news.top==0?"是":"否" }
查看 <c:if test="${user.rule==0 || user.uid ==news.uid }"> 修改 </c:if> <c:if test="${user.rule==0 }"> 删除 </c:if> <c:if test="${user.rule==0 }"> 审核</c:if> </c:forEach> <button type="button" >批量删除</button>
</body> <script type="text/javascript"> function banchDelete(){ var idsArray = document.getElementsByName("newsIds"); var nidArray=[]; for(k in idsArray){ if(idsArray[k].checked){ nidArray.push(idsArray[k].value); } } if(nidArray.length==0){ alert("请选择要删除的新闻"); return } window.location.href="./newsBanchDelete.jsp?nids="+nidArray.join(","); } </script>这段代码优化使user.rule=0的用户才能看见批量删除的按钮

最新推荐

recommend-type

JSTL标准标签库 <C:out>、<c:set>、<c:remove>和<c:catch>标记 <c:if>、<c:choose>、<c:when>和<c:otherwise>标记 <c:forEach>和<c:forTokens>标记

◎ JSTL的基本概念、安装与配置 ◎ JSTL的通用标记:&lt;c:out&gt;、&lt;c:set&gt;、&lt;c:remove&gt;和&lt;c:catch&gt;标记...◎ 条件处理标记:&lt;c:if&gt;、&lt;c:choose&gt;、&lt;c:when&gt;和&lt;c:otherwise&gt;标记 ◎ 循环标记:&lt;c:forEach&gt;和&lt;c:forTokens&gt;标记
recommend-type

yolov5-face-landmarks-opencv

yolov5检测人脸和关键点,只依赖opencv库就可以运行,程序包含C++和Python两个版本的。 本套程序根据https://github.com/deepcam-cn/yolov5-face 里提供的训练模型.pt文件。转换成onnx文件, 然后使用opencv读取onnx文件做前向推理,onnx文件从百度云盘下载,下载 链接:https://pan.baidu.com/s/14qvEOB90CcVJwVC5jNcu3A 提取码:duwc 下载完成后,onnx文件存放目录里,C++版本的主程序是main_yolo.cpp,Python版本的主程序是main.py 。此外,还有一个main_export_onnx.py文件,它是读取pytorch训练模型.pt文件生成onnx文件的。 如果你想重新生成onnx文件,不能直接在该目录下运行的,你需要把文件拷贝到https://github.com/deepcam-cn/yolov5-face 的主目录里运行,就可以生成onnx文件。
recommend-type

setuptools-0.6c8-py2.5.egg

文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

5-3.py

5-3
recommend-type

Java八股文.pdf

"Java八股文"是一个在程序员社群中流行的术语,特别是在准备技术面试时。它指的是一系列在Java编程面试中经常被问到的基础知识点、理论概念和技术细节。这个术语的命名来源于中国古代科举考试中的“八股文”,一种具有固定格式和套路的文章形式。 在Java编程的上下文中,"Java八股文"通常包括以下几个方面:"Java八股文"是一个在程序员社群中流行的术语,特别是在准备技术面试时。它指的是一系列在Java编程面试中经常被问到的基础知识点、理论概念和技术细节。这个术语的命名来源于中国古代科举考试中的“八股文”,一种具有固定格式和套路的文章形式。 在Java编程的上下文中,"Java八股文"通常包括以下几个方面:"Java八股文"是一个在程序员社群中流行的术语,特别是在准备技术面试时。它指的是一系列在Java编程面试中经常被问到的基础知识点、理论概念和技术细节。这个术语的命名来源于中国古代科举考试中的“八股文”,一种具有固定格式和套路的文章形式。 在Java编程的上下文中,"Java八股文"通常包括以下几个方面:"Java八股文"是一个在程序员社群中流行的术语,特别是在准备技术面试时。它
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。