axios提交form表单带条件查询并分页
分类: vue 专栏: vue学习 标签: 带条件查询并分页
2023-10-28 16:06:23 848浏览
axios提交form表单带条件查询并分页
1.传统表单键值对提交application/x-www-form-urlencoded
axios({
headers:{
'Content-type': 'application/x-www-form-urlencoded'
},
data:{'pageNum':1,'pageSize':8,'brandName':'百度','companyName':'腾讯'},
url:"http://localhost:8082/vue_demo_war_exploded/getAllBrands",
method:'post',
}).then(function(result){
console.log(result)
})
后端代码
@RequestMapping("/getAllBrands")
public List<Brand> getAllBrands( Integer pageNum,Integer pageSize,Brand brand){
2.json数据提交——application/json
axios({
data:{'brandName':'百度','companyName':'腾讯'},
url:"http://localhost:8082/vue_demo_war_exploded/getAllBrands/1/8",
method:'post',
}).then(function(result){
console.log(result)
})后端代码
@RequestMapping("/getAllBrands/{pageNum}/{pageSize}")
public List<Brand> getAllBrands(@PathVariable Integer pageNum,@PathVariable Integer pageSize, @RequestBody(required = false) Brand brand){
全部代码
<template>
<div>
<el-form :inline="true" :model="searchForm" class="demo-form-inline">
<el-form-item label="品牌名称">
<el-input v-model="searchForm.brandName" placeholder="品牌名称"></el-input>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="searchForm.companyName" placeholder="企业名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="search()">查询</el-button>
</el-form-item>
</el-form>
<el-table :data="tableData" style="width: 100%">
<el-table-column label="序号" width="180">
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column prop="brandName" label="品牌名称" width="180">
</el-table-column>
<el-table-column prop="companyName" label="企业名称">
</el-table-column>
</el-table>
<div class="block">
<el-pagination layout="total,prev, pager, next"
@current-change="handlePageChange"
:current-page="pageNum"
:page-size="pageSize"
:total="totalCount">
</el-pagination>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
totalCount:0,
tableData: [],
pageNum:1,
pageSize:3,
searchForm: {
brandName: '',
companyName: '',
}
}
},
methods: {
handlePageChange(val){
console.log(val)
this.pageNum=val
this.getPage()
},
getPage() {
var api= process.env.Back_api
var that = this
console.log("-------------------")
axios({
url: api+"getAllBrands?pageNum="+that.pageNum,
headers:{
'Content-type': 'application/x-www-form-urlencoded'
},
method: "post",
data: that.searchForm
}).then(function (result) {
console.log(result)
that.tableData = result.data.list
that.totalCount= result.data.total
console.log("总条数:"+that.totalCount)
})
},
search() {
this.pageNum=1
this.getPage()
}
},
created() {
this.getPage()
}
}
</script>
<style></style>后台核心代码
@PostMapping("/getAllBrands")
public PageInfo<Brand> getAllBrands( Integer pageNum, Brand brand){
System.out.println(pageNum);
return brandService.getPage(pageNum,brand);
}当然也可改成
前端axios请求还是采用默认的application/json,那后端java代码改成
@PostMapping("/getAllBrands")
public PageInfo<Brand> getAllBrands( Integer pageNum, @RequestBody Brand brand){
System.out.println(pageNum);
return brandService.getPage(pageNum,brand);
}
特别提醒:@PathVariable和 @RequestParam不要同时使用在一个参数上
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
暂无评论,快来写一下吧
展开评论
您可能感兴趣的博客
他的专栏
他感兴趣的技术


新业务
springboot学习
ssm框架课
vue学习
【带小白】java基础速成