requestbody 前台如何传值_前端与后端之间参数的传递与接收和@RequestBody,@Requestparam,@Param三个注解的使用...

参数在前台通过对象的形式传递到后台,在后台,可以用@RequestBody注解通过Map或JSONObject接收(太麻烦,既要从Map中取值,取完值后又要封装到Map),也可以用@RequestParam注解通过具体的属性接收。在dao层可以通过Map将参数传递到mapper.xml,也可以用@Param注解将具体的属性值传递到Mapper.xml。

前端代码:

前端传递给后台一个对象。

data() {

return{

listQuery: {

page: 1,

limit: 20,

dataCode: null,

dataName: null,

// enterpriseId: null,

enterpriseType: null},

},

getList() {this.listLoading = truedataSet.getList(this.listQuery).then(response =>{if(response.success) {this.list =response.datathis.total =response.total

}else{this.$message.error("数据集合信息获取失败")

}

}).catch(error =>{

console.log(error)this.$message.error("发生内部错误,请联系管理员")

}).finally(() =>{this.listLoading = false})

},

getList(query) {returnrequest({

url:'/dataSet/list',

method:'post',params: query

})

},

后台代码:

controller:

controller用@RequestParam注解接收单个属性

@RestController

@RequestMapping("api/dataSet")

@Validatedpublic classDataSetController {private static Logger logger = LoggerFactory.getLogger(DataSetController.class);

@AutowiredprivateDataSetService dataSetService;@PostMapping("/list")publicResult getDataSetList(

@RequestParam(required= false) String dataCode,

@RequestParam(required = false) String dataName,

@RequestParam(name = "page", defaultValue = "1") int pageIndex,

@RequestParam(name = "limit", defaultValue = "10") intlength

) {returndataSetService.getDataSetList(dataCode, dataName, pageIndex, length);

}

}

也可以用Map或JSONObject接收前端传递过来的整个对象

@RestController

@RequestMapping("api/dataSet")

@Validatedpublic classDataSetController {private static Logger logger = LoggerFactory.getLogger(DataSetController.class);

@AutowiredprivateDataSetService dataSetService;

@PostMapping("/list")publicResult getDataSetList(@RequestBody Map map) {

String dataCode = (String) map.get("dataCode");

String dataName = (String) map.get("dataName");

Integer pageIndex = (Integer) map.get("pageIndex");

Integer length = (Integer) map.get("length");

returndataSetService.getDataSetList(dataCode, dataName, pageIndex, length); } }

@RestController

@RequestMapping("api/dataSet")

@Validatedpublic classDataSetController {private static Logger logger = LoggerFactory.getLogger(DataSetController.class);

@AutowiredprivateDataSetService dataSetService;

@PostMapping("/list")publicResult getDataSetList(@RequestBody JSONObject map ) {

String dataCode= map.getString("dataCode");

String dataName = map.getString("dataName");

Integer pageIndex = map.getIntValue("pageIndex");

Integer length = map.getIntValue("length");return dataSetService.getDataSetList(dataCode, dataName, pageIndex, length); } }

service:

service中可以将参数封装到Map中再传递到dao层,即使是controller层用Map接收,service层中也要从Map中取值。

public Result getDataSetList(String dataCode, String dataName, int pageIndex, int length) {

Map map = new HashMap();

map.put("dataCode", dataCode);

map.put("dataName", dataName);

PageHelper.startPage(pageIndex, length);

List dataSetList = dataSetMapper.selectDataSetList(map);

PageInfo pageInfo = new PageInfo(dataSetList);

return Result.operating("数据集合查询成功", true, Result.SUCCESS, pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPages());

}

service中也可以直接将参数分别传递到dao层

public Result getDataSetList(String dataCode, String dataName, int pageIndex, intlength) {PageHelper.startPage(pageIndex, length);

List dataSetList =dataSetMapper.selectDataSetList(dataCode,dataName);

PageInfo pageInfo= newPageInfo(dataSetList);return Result.operating("数据集合查询成功", true, Result.SUCCESS, pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPages());

}

dao层:

如果service中将参数封装到Map中再传递到dao层,则dao层用Map

public interface DataSetMapper extends Mapper{

ListselectDataSetList(Map map);

}

如果service中直接将参数分别传递到dao层,则用@Param注解接收

public interface DataSetMapper extends Mapper{

List selectDataSetList(@Param("dataCode") String dataCode,@Param("dataName") String dataName); }

mapper.xml:

SELECT

t1.id AS "dataId",

t1.data_code AS "dataCode",

t1.data_name AS "dataName",

t1.remark AS "remark",

t2.id AS "enterpriseDataSetId",

t3.id AS "enterpriseId",

t3.enterprise_name AS "enterpriseName"

FROM

sys_data_set t1

LEFT JOIN sys_enterprise_data_set t2 ON t1.id = t2.data_id

LEFT JOIN sys_enterprise t3 ON t2.enterprise_id = t3.id

WHERE 1=1 AND t1.status=0

AND t1.data_code LIKE '%'||#{dataCode}||'%'

AND t1.data_name LIKE '%'||#{dataName}||'%'

AND t3.del_flag = 0

AND t3.id=#{enterpriseId}

ORDER BY t1.id DESC

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值