如何在SpringBoot后台接收前台传递的对象
创始人
2024-12-29 02:23:39
0次

ajax方式:

$.ajax({
 url: "后台的方式",
 async: false,
 type: "POST",
 dataType : "json",
 data: JSON.stringify(formParamObj),
 contentType:'application/json;charset=utf-8',
 success: function (data) {
  if (data.isSuccess) {
   //成功处理方式
  } else if ("403" == data) {
   //失败方式处理
  }
 }
});

axios方式:

let params = {
 key1:value1,
 key2:value2
}
axios.post/get(url,params).then(res=>{
 //处理结果
})

解决方案:

在方法的参数前面添加注解@RequestBody就可以解决

@PostMapper("/xxx/xxxx")
public List getProgramList(@RequestBody Program program){
 System.out.println(program);
 return null;
}

落地测试:

可以通过postman工具进行测试

补充:关于SpringBoot自定义注解(解决post接收String参数 null(前台传递json格式))

今天遇到个问题,接口方面的,请求参数如下图为json格式(测试工具使用google的插件postman)

如何在SpringBoot后台接收前台传递的对象

后台用字符串去接收为null

解决方案有以下几种

1.使用实体接收(一个参数,感觉没必要)

2.使用map接收(参数不清晰,不想用)

3.自定义注解(本文采用)

第一步:

如何在SpringBoot后台接收前台传递的对象

创建两个类代码如下:

package com.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestJson {
String value();
}
package com.annotation;
import java.io.BufferedReader;
import javax.servlet.http.HttpServletRequest;
import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
import com.alibaba.fastjson.JSONObject;
public class RequestJsonHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return parameter.hasParameterAnnotation(RequestJson.class);
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
RequestJson requestJson = parameter.getParameterAnnotation(RequestJson.class);
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
BufferedReader reader = request.getReader();
StringBuilder sb = new StringBuilder();
char[] buf = new char[1024];
int rd;
while ((rd = reader.read(buf)) != -1) {
sb.append(buf, 0, rd);
}
JSONObject jsonObject = JSONObject.parseObject(sb.toString());
String value = requestJson.value();
return jsonObject.get(value);
}
}

第二步:启动类添加如下代码

如何在SpringBoot后台接收前台传递的对象

第三步:后台请求(使用下图方式接受就可以了)

如何在SpringBoot后台接收前台传递的对象

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...