鱼C论坛

 找回密码
 立即注册
查看: 177|回复: 3

[已解决]JavaWeb中如何让按钮删除指定的文章?

[复制链接]
发表于 2024-1-8 17:47:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面的代码是一个用于展示未通过审核的博客的页面,我想通过点击按钮改变博客的审核状态。但是当我点击按钮后所有博客都进行了修改,而我只想修改按钮被点击的那篇,应该如何修改?
  1. <%@ page import="edu.zjku.bean.Blog" %>
  2. <%@ page import="edu.zjku.service.BlogService" %>
  3. <%@ page import="java.util.List" %>
  4. <%@ page import="edu.zjku.service.BlogServiceImpl" %>
  5. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  6. <html>
  7. <head>
  8.     <title>审核博客</title>
  9.     <link rel="stylesheet" href="style/public.css">
  10.     <link rel="stylesheet" href="style/index.css">
  11.     <link rel="stylesheet" href="style/audit.css">
  12. </head>
  13. <body>
  14. <jsp:include page="header.jsp"/>
  15. <div class="box">
  16.     <%--    判断用户是否为管理员--%>
  17.     <%
  18.         Object username = session.getAttribute("username");
  19.         if (username != null) {
  20.             if (username.equals("root")) {
  21.                 //展示审核内容,执行操作
  22.                 BlogService service = new BlogServiceImpl();
  23.                 List<Blog> blogs = service.selectUnpass();
  24.                 for (Blog blog : blogs) {%>
  25.     <table>
  26.         <tr>
  27.             <td class="title"><%=blog.getTitle()%>
  28.             </td>
  29.         </tr>
  30.         <tr>
  31.             <td class="text"><%=blog.getText()%>
  32.             </td>
  33.         </tr>
  34.         <tr>
  35.             <td class="user"><%=blog.getUser()%>
  36.             </td>
  37.         </tr>
  38.         <tr>
  39.             <td class="time"><%=blog.getTime()%>
  40.             </td>
  41.         </tr>
  42.         <tr>
  43.             <td>
  44.                 <form action="allow.jsp" method="get" autocomplete="off">
  45.                     <input type="hidden" name="blogId" value="<%blog.getPid();%>                    %>">
  46.                     <button type="submit">通过</button>
  47.                 </form>
  48.             </td>
  49.         </tr>
  50.     </table>
  51.     <%
  52.                 }
  53.             } else {
  54.                 //非管理员,强制返回首页
  55.                 response.getWriter().write("权限不足!2秒后返回首页");
  56.                 response.setHeader("Refresh", "2;URL=/theBlog/index.jsp");
  57.             }
  58.         }else {
  59.             //非管理员,强制返回首页
  60.             response.getWriter().write("权限不足!2秒后返回首页");
  61.             response.setHeader("Refresh", "2;URL=/theBlog/index.jsp");
  62.         }
  63.     %>

  64. </div>
  65. <jsp:include page="footer.jsp"/>
  66. </body>
  67. </html>
复制代码
最佳答案
2024-1-8 18:24:58
ZhihanXing 发表于 2024-01-08 18:24
不使用AJAX可以实现吗?


是的,您也可以不使用AJAX来实现。您可以在后台代码中使用Java的服务端技术(如Servlet)来处理按钮点击事件,并修改指定博客的审核状态。

首先,在前端页面的按钮元素上添加一个`name`属性,值为对应博客的唯一标识符(如文章的ID),然后通过表单提交按钮的点击事件到后台。

下面是一个简单的示例代码:

  1. <form action="/approve" method="post">
  2.   <div>
  3.     <label for="blog1">博客标题1</label>
  4.     <input type="submit" name="blogId" value="通过" id="blog1">
  5.   </div>
  6.   <div>
  7.     <label for="blog2">博客标题2</label>
  8.     <input type="submit" name="blogId" value="通过" id="blog2">
  9.   </div>
  10. </form>
复制代码


在上述代码中,我们给每个按钮元素添加了一个`name`属性,值为`blogId`,并给每个按钮添加了一个独立的`id`属性来标识对应的博客。

然后,在后台的Java代码中,您可以通过获取请求参数中的`blogId`值来确定哪篇博客被点击了,然后执行相应的操作。

下面是一个简单的Servlet代码示例:

  1. @WebServlet("/approve")
  2. public class ApproveServlet extends HttpServlet {

  3.   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  4.     String blogId = request.getParameter("blogId");
  5.    
  6.     // 根据博客ID修改相应博客的审核状态
  7.     // ...
  8.    
  9.     response.getWriter().println("博客已通过审核");
  10.   }

  11. }
复制代码


在上述代码中,我们通过`request.getParameter("blogId")`方法获取到了表单提交过来的`blogId`值,然后可以根据这个值来确定需要修改的博客,并执行相应的操作(修改审核状态等)。

请注意,上述代码只是一个简单的示例,实际情况中您可能需要根据自己的项目结构和需求进行适当的修改。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-8 17:47:51 | 显示全部楼层
您好!要实现只修改按钮被点击的那篇博客,您可以通过给每个按钮设置一个唯一的标识符(如文章的ID),然后在点击的时候传递该标识符到后台。

下面是一个简单的示例代码:

  1. <!-- 审核博客页面 -->
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5.     <title>审核博客</title>
  6. </head>
  7. <body>
  8.     <!-- 假设这里有多篇未通过审核的博客 -->
  9.     <div class="blog">
  10.         <p>博客标题1</p>
  11.         <button onclick="approveBlog(1)">通过</button>
  12.     </div>
  13.     <div class="blog">
  14.         <p>博客标题2</p>
  15.         <button onclick="approveBlog(2)">通过</button>
  16.     </div>
  17.     <!-- ...其他博客... -->

  18.     <script type="text/javascript">
  19.         // 通过AJAX向后台发送请求
  20.         function approveBlog(blogId) {
  21.             // 创建一个XMLHttpRequest对象
  22.             var xhr = new XMLHttpRequest();
  23.             // 设置请求方法和URL
  24.             xhr.open('POST', '/approve', true);
  25.             // 设置请求头
  26.             xhr.setRequestHeader('Content-Type', 'application/json');
  27.             // 设置请求内容
  28.             var data = {id: blogId};
  29.             // 将请求内容转为JSON字符串并发送
  30.             xhr.send(JSON.stringify(data));
  31.             
  32.             // 检查响应状态
  33.             xhr.onreadystatechange = function() {
  34.                 if (xhr.readyState === 4 && xhr.status === 200) {
  35.                     // 请求成功,更新页面或执行其他操作
  36.                     console.log('博客已通过审核');
  37.                 }
  38.             };
  39.         }
  40.     </script>
  41. </body>
  42. </html>
复制代码


在上面的代码中,我们为每篇博客的按钮添加了一个`onclick`事件,当点击某个按钮时,会触发`approveBlog`函数,并将该博客的ID作为参数传递给后台。在`approveBlog`函数中,使用AJAX发送一个POST请求到后台的`/approve`接口,并携带该博客的ID作为请求内容。

在后台接收到请求后,根据传递的博客ID执行相应的操作(例如修改博客的审核状态),然后返回响应给前端。

请注意,上述代码只是一个简单的示例,实际情况中您需要根据自己的项目结构和需求进行适当的修改。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-8 18:24:44 | 显示全部楼层
FishC 发表于 2024-1-8 17:47
您好!要实现只修改按钮被点击的那篇博客,您可以通过给每个按钮设置一个唯一的标识符(如文章的ID),然后 ...

不使用AJAX可以实现吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-8 18:24:58 | 显示全部楼层    本楼为最佳答案   
ZhihanXing 发表于 2024-01-08 18:24
不使用AJAX可以实现吗?


是的,您也可以不使用AJAX来实现。您可以在后台代码中使用Java的服务端技术(如Servlet)来处理按钮点击事件,并修改指定博客的审核状态。

首先,在前端页面的按钮元素上添加一个`name`属性,值为对应博客的唯一标识符(如文章的ID),然后通过表单提交按钮的点击事件到后台。

下面是一个简单的示例代码:

  1. <form action="/approve" method="post">
  2.   <div>
  3.     <label for="blog1">博客标题1</label>
  4.     <input type="submit" name="blogId" value="通过" id="blog1">
  5.   </div>
  6.   <div>
  7.     <label for="blog2">博客标题2</label>
  8.     <input type="submit" name="blogId" value="通过" id="blog2">
  9.   </div>
  10. </form>
复制代码


在上述代码中,我们给每个按钮元素添加了一个`name`属性,值为`blogId`,并给每个按钮添加了一个独立的`id`属性来标识对应的博客。

然后,在后台的Java代码中,您可以通过获取请求参数中的`blogId`值来确定哪篇博客被点击了,然后执行相应的操作。

下面是一个简单的Servlet代码示例:

  1. @WebServlet("/approve")
  2. public class ApproveServlet extends HttpServlet {

  3.   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  4.     String blogId = request.getParameter("blogId");
  5.    
  6.     // 根据博客ID修改相应博客的审核状态
  7.     // ...
  8.    
  9.     response.getWriter().println("博客已通过审核");
  10.   }

  11. }
复制代码


在上述代码中,我们通过`request.getParameter("blogId")`方法获取到了表单提交过来的`blogId`值,然后可以根据这个值来确定需要修改的博客,并执行相应的操作(修改审核状态等)。

请注意,上述代码只是一个简单的示例,实际情况中您可能需要根据自己的项目结构和需求进行适当的修改。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 12:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表