package com.bobo.book.servlet; import com.bobo.book.bean.User; import com.bobo.book.dao.IUserService; import com.bobo.book.dao.impl.UserServiceImpl; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @WebServlet(name = "UserServlet", value = "/userServlet") public class UserServlet extends HttpServlet { // 获取对应的Service对象 private IUserService userService = new UserServiceImpl(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1.查询所有的用户信息 List<User> list = userService.queryUser(null); // 2.把查询的数据存储在了Request作用域中 request.setAttribute("list",list); // 3.页面跳转到JSP页面中 request.getRequestDispatcher("/web/user.jsp").forward(request,response); } } <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!-- 引入JSTL的标签库 --> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Title</title> </head> <body> <h1>用户信息</h1> <c:forEach items="${requestScope.list}" var="user"> ${user.id}--${user.userName} --${user.password} </br> </c:forEach> </body> </html> 为什么第一部分代码无法跳转到user.jsp
时间: 2024-01-22 08:21:23 浏览: 85
可能是因为你没有在web.xml文件中配置该Servlet的映射关系,或者value的值不正确。请检查一下web.xml文件中是否添加了如下配置:
```
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>com.bobo.book.servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/userServlet</url-pattern>
</servlet-mapping>
```
其中,servlet-name标签中的名称必须和@WebServlet注解中的name属性值一致,url-pattern标签中的值必须和@WebServlet注解中的value属性值一致。如果已经配置好了,请检查一下Tomcat控制台是否有报错信息。
相关问题
@DeleteMapping("/removeBatchById") public boolean removeBatchById(@RequestBody List<Long> idList) { List<User> userList = new ArrayList<>(); for (Long id : idList) { // 根据ID查询数据库中的原始数据 User user = iUserService.getById(id); if (user != null) { userList.add(user); } } return iUserService.removeByIds(userList.stream().map(User::getId).collect(Collectors.toList())); } 详细解释该代码方法含义 iUserService.removeByIds(userList.stream().map(User::getId).collect(Collectors.toList()));
这段代码是一个删除批量数据的方法。首先,通过`@DeleteMapping`注解将该方法绑定到一个删除请求的URL路径上。方法接收一个`idList`参数,该参数是一个包含要删除数据的ID的列表。
在方法内部,首先创建一个空的`userList`列表,用于存储从数据库中查询到的原始数据。然后使用`for`循环遍历`idList`列表中的每个ID,通过调用`iUserService.getById(id)`方法从数据库中查询对应ID的原始数据。
如果查询到的原始数据不为空,则将其添加到`userList`列表中。最后,通过调用`iUserService.removeByIds()`方法,该方法接收一个ID列表作为参数,将`userList`中的每个用户对象的ID提取出来,然后将这个ID列表传递给`removeByIds()`方法进行批量删除操作。
整个方法的返回值是一个布尔值,表示删除操作是否成功。如果删除成功,则返回`true`,否则返回`false`。
/** * 根据ID 批量更新 */ @PutMapping("/updateBatchById") public boolean updateBatchById(@RequestBody List<User> userList) { List<User> updatedUsers = new ArrayList<>(); for (User user : userList) { // 根据ID查询数据库中的原始数据 User originalUser = iUserService.getById(user.getId()); if (originalUser != null) { // 更新需要修改的字段 originalUser.setUsername(user.getUsername()); originalUser.setPassword(user.getPassword()); originalUser.setPhone(user.getPhone()); originalUser.setEmail(user.getEmail()); originalUser.setAddress(user.getAddress()); updatedUsers.add(originalUser); } } return iUserService.updateBatchById(updatedUsers); } 仿照该方法实现根据id批量删除
根据您的需求,您可以仿照上述的批量更新方法实现根据ID批量删除的方法。以下是实现的示例代码:
```java
@DeleteMapping("/deleteBatchById")
public boolean deleteBatchById(@RequestBody List<Long> idList) {
List<User> userList = new ArrayList<>();
for (Long id : idList) {
// 根据ID查询数据库中的原始数据
User user = iUserService.getById(id);
if (user != null) {
userList.add(user);
}
}
return iUserService.removeByIds(userList.stream().map(User::getId).collect(Collectors.toList()));
}
```
在上述示例中,我们首先遍历传入的`idList`,根据每个ID查询数据库中的原始数据,并将查到的数据加入到`userList`中。
最后,我们调用`removeByIds`方法来批量删除`userList`中的数据。
请确保您已经在Service层定义了相应的删除方法,并在配置文件中配置了相关的依赖和Bean。根据您的实际需求,您可以修改方法签名和调用逻辑。
阅读全文