spring-dubbo框架中前后端RPC远程调用时controller层控制中心得不到数据,前后端数据不交互,但不抛异常的原因及解决办法

spring-dubbo框架中前后端RPC远程调用时controller层控制中心得不到数据,但不抛异常的原因有:
1.前端发送异步请求是传递地址值中,参数的名字与后端代码参数名不同,检查单词拼写,字母大小写,
2.后端controller控制中心,方法的参数列表为对象时,没有使用@RequestBody注解

controller控制中心层使用了@RestController注解
前端HTML页面代码,重点关注url地址值

  			//编辑
            handleEdit() {
                axios.post(this.backend_url + "/checkgroup/edit.do?checkItemIds=" + this.checkitemIds, this.formData).then((response) => {
                    if (response.data.flag) {
                        this.$message(response.data.message);
                    }else{
                        this.$message.error(response.data.message);
                    }
                });
            },
   @RequestMapping("/edit")
    public Result edit(Integer[] checkItemIds, @RequestBody CheckGroup checkGroup) {
        try {
            //  log.debug("controller checkGroup:{} checkItemIds:{}",checkGroup,checkItemIds);
            checkGroupService.edit(checkGroup, checkItemIds);
            return new Result(true, MessageConst.ADD_CHECKGROUP_SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConst.ADD_CHECKGROUP_FAIL);
        }
    }

在这里插入图片描述
向前端传递的JSON模板 ,仅展示成员变量

public class Result implements Serializable{
    private boolean flag;//执行结果,true为执行成功 false为执行失败
    private String message;//返回结果信息
    private Object data;//返回数据
}

查询条件实体类QueryPageBean ,仅展示成员变量

  @Transactional
    @Override
    public void edit(CheckGroup checkGroup, Integer[] checkItemIds) {
        //先编辑检查组
        checkGroupDao.update(checkGroup);
        //删除原有关系
        checkGroupDao.deletCheckItemCheckGroupByCheckGroupId(checkGroup.getId());
        //再新增检查组
        Map map = new HashMap<>();
        for (Integer checkItemId : checkItemIds) {
            //map的键与  VALUES (#{checkgroup_id},#{checkitem_id})对应
            map.put("checkgroup_id", checkGroup.getId());
            map.put("checkitem_id", checkItemId);
            checkGroupDao.addCheckGroupCheckItem(map);
            map.clear();
        }
    }

dao层

 /**
     * 更新检查组
     * @param checkGroup
     */
    void update(CheckGroup checkGroup);

    /**
     * 根据检查组id删除原有关系
     * @param checkGroupId
     */
    void deletCheckItemCheckGroupByCheckGroupId(@Param("checkGroupId") Integer checkGroupId);
  /**
     * 添加检查项与检查组的关系,查一次,循环添加
     * @param map key:CheckGroupID  value:CheckItemID
     */
    void addCheckGroupCheckItem(Map map);

xml配置文件中sql语句

<update id="update" parameterType="CheckGroup">
        UPDATE t_checkgroup SET code=#{code}, name=#{name}, helpCode=#{helpCode},
         sex=#{sex}, remark=#{remark}, attention=#{attention}
         where id=#{id}
</update>

<delete id="deletCheckItemCheckGroupByCheckGroupId" parameterType="integer">
        DELETE FROM t_checkgroup_checkitem
        WHERE checkgroup_id=#{checkGroupId}
 </delete>
 
 <insert id="addCheckGroupCheckItem" parameterType="map">
        INSERT INTO t_checkgroup_checkitem
        VALUES (#{checkgroup_id},#{checkitem_id})
</insert>

数据库表介绍在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值