前端将多个名字通过换行符分割后传递给后端; 后端将传递过来的名字进行分割,并使用循环对每个名字进行搜索; 将每个名字搜索的结果合并成一个列表,并进行分页处理; 将分页后的结果返回给前端。通过PageInfo+PageHelper做分页实现,controller,service,dao,xml代码实现,查询内容name,age,表user这个名字存到一个map中传到dao,全在service层做修改
时间: 2024-03-02 07:53:43 浏览: 142
新手学习可前端分页,前端分页,简单的前端分页,html分页,html前端分页
好的,这是一个比较详细的问题,需要比较详细的回答。我会尽力解答,如果您有任何疑问,请随时向我提出。
首先,前端将多个名字通过换行符分割后传递给后端。这个过程可以通过前端的Ajax请求来实现。前端可以将多个名字通过一个文本框输入,然后通过JavaScript将多个名字按照换行符分割成一个数组,然后通过Ajax请求将这个数组发送到后端。后端可以通过SpringMVC框架来接收这个请求。
其次,后端将传递过来的名字进行分割,并使用循环对每个名字进行搜索。这个过程可以在Service层中实现。Service层可以接收到前端传递过来的数组,然后对数组进行循环,依次对每个名字进行搜索。搜索的过程可以通过MyBatis框架来实现。在Service层中,我们可以通过一个Map对象将搜索所需要的参数传递给DAO层。
然后,将每个名字搜索的结果合并成一个列表,并进行分页处理。这个过程可以在Service层中实现。在循环中,我们可以将每个名字搜索的结果添加到一个List中,最后将List进行分页处理。分页处理可以通过PageHelper插件来实现。在Service层中,我们可以通过PageHelper.startPage()方法来启动分页功能,并将分页后的结果封装成一个PageInfo对象返回给Controller层。
最后,将分页后的结果返回给前端。这个过程可以在Controller层中实现。Controller层可以接收到Service层返回的PageInfo对象,并将其转换成JSON格式返回给前端。在Controller层中,我们可以使用@ResponseBody注解将返回结果转换成JSON格式返回给前端。
下面是代码实现的步骤:
1. 前端代码
HTML代码:
```html
<input type="text" id="names" />
<button onclick="search()">搜索</button>
<script>
function search() {
var names = $('#names').val().split('\n');
$.ajax({
type: 'POST',
url: '/search',
data: JSON.stringify(names),
contentType: 'application/json',
success: function(data) {
console.log(data);
}
});
}
</script>
```
2. 后端代码
Controller层代码:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/search")
public PageInfo<User> search(@RequestBody List<String> names) {
return userService.search(names);
}
}
```
Service层代码:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public PageInfo<User> search(List<String> names) {
List<User> userList = new ArrayList<>();
for (String name : names) {
Map<String, Object> params = new HashMap<>();
params.put("name", name);
params.put("age", 20);
List<User> list = userDao.search(params);
userList.addAll(list);
}
PageInfo<User> pageInfo = new PageInfo<>(userList);
return pageInfo;
}
}
```
DAO层代码:
```java
@Mapper
public interface UserDao {
List<User> search(Map<String, Object> params);
}
```
Mapper XML文件:
```xml
<select id="search" resultType="com.example.User">
SELECT * FROM user WHERE name = #{name} AND age = #{age}
</select>
```
3. 分页插件配置
在Spring Boot应用中,我们可以通过在application.properties文件中配置以下属性来启用分页插件:
```
# 开启分页插件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
```
这样就可以在Service层中使用PageHelper插件来进行分页了。
4. 返回结果的JSON格式
返回结果的JSON格式如下:
```json
{
"pageNum": 1,
"pageSize": 10,
"size": 10,
"startRow": 1,
"endRow": 10,
"total": 100,
"pages": 10,
"list": [
{
"id": 1,
"name": "张三",
"age": 20
},
{
"id": 2,
"name": "李四",
"age": 21
},
...
],
"prePage": 0,
"nextPage": 0,
"isFirstPage": true,
"isLastPage": false,
"hasPreviousPage": false,
"hasNextPage": true,
"navigatePages": 8,
"navigatepageNums": [
1,
2,
3,
4,
5,
6,
7,
8
],
"navigateFirstPage": 1,
"navigateLastPage": 8,
"lastPage": 8,
"firstPage": 1
}
```
这样就完成了将多个名字进行搜索,并进行分页处理的功能。
阅读全文