鱼C论坛

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

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

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

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

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

x
下面的代码是一个用于展示未通过审核的博客的页面,我想通过点击按钮改变博客的审核状态。但是当我点击按钮后所有博客都进行了修改,而我只想修改按钮被点击的那篇,应该如何修改?
<%@ page import="edu.zjku.bean.Blog" %>
<%@ page import="edu.zjku.service.BlogService" %>
<%@ page import="java.util.List" %>
<%@ page import="edu.zjku.service.BlogServiceImpl" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>审核博客</title>
    <link rel="stylesheet" href="style/public.css">
    <link rel="stylesheet" href="style/index.css">
    <link rel="stylesheet" href="style/audit.css">
</head>
<body>
<jsp:include page="header.jsp"/>
<div class="box">
    <%--    判断用户是否为管理员--%>
    <%
        Object username = session.getAttribute("username");
        if (username != null) {
            if (username.equals("root")) {
                //展示审核内容,执行操作
                BlogService service = new BlogServiceImpl();
                List<Blog> blogs = service.selectUnpass();
                for (Blog blog : blogs) {%>
    <table>
        <tr>
            <td class="title"><%=blog.getTitle()%>
            </td>
        </tr>
        <tr>
            <td class="text"><%=blog.getText()%>
            </td>
        </tr>
        <tr>
            <td class="user"><%=blog.getUser()%>
            </td>
        </tr>
        <tr>
            <td class="time"><%=blog.getTime()%>
            </td>
        </tr>
        <tr>
            <td>
                <form action="allow.jsp" method="get" autocomplete="off">
                    <input type="hidden" name="blogId" value="<%blog.getPid();%>                    %>">
                    <button type="submit">通过</button>
                </form>
            </td>
        </tr>
    </table>
    <%
                }
            } else {
                //非管理员,强制返回首页
                response.getWriter().write("权限不足!2秒后返回首页");
                response.setHeader("Refresh", "2;URL=/theBlog/index.jsp");
            }
        }else {
            //非管理员,强制返回首页
            response.getWriter().write("权限不足!2秒后返回首页");
            response.setHeader("Refresh", "2;URL=/theBlog/index.jsp");
        }
    %>

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


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

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

下面是一个简单的示例代码:
<form action="/approve" method="post">
  <div>
    <label for="blog1">博客标题1</label>
    <input type="submit" name="blogId" value="通过" id="blog1">
  </div>
  <div>
    <label for="blog2">博客标题2</label>
    <input type="submit" name="blogId" value="通过" id="blog2">
  </div>
</form>

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

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

下面是一个简单的Servlet代码示例:
@WebServlet("/approve")
public class ApproveServlet extends HttpServlet {

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

}

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

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

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

使用道具 举报

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

下面是一个简单的示例代码:
<!-- 审核博客页面 -->
<!DOCTYPE html>
<html>
<head>
    <title>审核博客</title>
</head>
<body>
    <!-- 假设这里有多篇未通过审核的博客 -->
    <div class="blog">
        <p>博客标题1</p>
        <button onclick="approveBlog(1)">通过</button>
    </div>
    <div class="blog">
        <p>博客标题2</p>
        <button onclick="approveBlog(2)">通过</button>
    </div>
    <!-- ...其他博客... -->

    <script type="text/javascript">
        // 通过AJAX向后台发送请求
        function approveBlog(blogId) {
            // 创建一个XMLHttpRequest对象
            var xhr = new XMLHttpRequest();
            // 设置请求方法和URL
            xhr.open('POST', '/approve', true);
            // 设置请求头
            xhr.setRequestHeader('Content-Type', 'application/json');
            // 设置请求内容
            var data = {id: blogId};
            // 将请求内容转为JSON字符串并发送
            xhr.send(JSON.stringify(data));
            
            // 检查响应状态
            xhr.onreadystatechange = function() {
                if (xhr.readyState === 4 && xhr.status === 200) {
                    // 请求成功,更新页面或执行其他操作
                    console.log('博客已通过审核');
                }
            };
        }
    </script>
</body>
</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),然后通过表单提交按钮的点击事件到后台。

下面是一个简单的示例代码:
<form action="/approve" method="post">
  <div>
    <label for="blog1">博客标题1</label>
    <input type="submit" name="blogId" value="通过" id="blog1">
  </div>
  <div>
    <label for="blog2">博客标题2</label>
    <input type="submit" name="blogId" value="通过" id="blog2">
  </div>
</form>

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

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

下面是一个简单的Servlet代码示例:
@WebServlet("/approve")
public class ApproveServlet extends HttpServlet {

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

}

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

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 01:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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