如何改正呢,其实很简单,将返回String的ContentType变成“application/json; charset=UTF-8“。然后将自定义的Result转换成json字符串,上代码: 1:想在前台js里面直接当成json使用,需要将返回String的ContentType变成“application/json; charset=UTF-8“,produces即完成此部分工作。@ResponseResult此注解是用来标识哪些类或...
ServerHttpResponse response) {//定义一个统一的返回类RestResult responseResult =newRestResult( "0", body, "success");//如果handler处理类的返回类型是String(即控制层的返回值类型),为了保证一致性,这里需要将ResponseResult转回去if(bodyinstanceofString) {returnJSON.toJSONString(responseResult); }//封装...
使用ResponseBodyAdvice返回值为String出现cannot be cast to java.lang.String异常 背景 由于项目中为了全局返回统一的JSON格式,使用ResponseBodyAdvice进行拦截,拦截的时候会将返回的信息统一一个对象返回到前端。但是有的同事将一个String的响应对象返回,结果报错com.example.demoweb.config.ApiResponse cannot be cast t...
方法/步骤 1 如果函数的返回值是一个HashMap 2 将body的实际类型重新定义为String后,前端接收不到值 3 只有当返回值类型是字符串时,才正常 总结 1 1.定义ResponseBodyAdvice拦截返回结果,将结果重新成字符串,前端获取不到结果2.只有当函数的返回类型是字符串时,才可以 ...
此时请求 hello接口,会报ResponseTemplate不能转为string的异常 解决 重写WebMvcConfigurerAdapter 重写WebMvcConfigurerAdapter,覆盖了原有的HttpMessageConverters,此处采用:com.alibaba.fastjson <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.54</version></dependency> ...
//如果handler处理类的返回类型是String(即控制层的返回值类型),为了保证一致性,这里需要将ResponseResult转回去 if(body instanceof String) { return JSON.toJSONString(responseResult); } //封装后的数据返回到前端页面 return JSONObject.toJSON(responseResult); ...
{response.getHeaders().set("content-type", "text/plain;charset=UTF-8");//some codes..String result = "hello";return result;}它响应“你好”(我需要不带双引号的数据)在控制器类中,它仅响应 hello(不带双引号)。请参阅下面的代码。 @ApiOperation(value = "absdfasdf", produces = "text/plain...
(Objectbody,HttpInputMessageinputMessage,MethodParameterparameter,TypetargetType,Class<?extendsHttpMessageConverter<?>>converterType){//todo 例如强制为对象,来赋予公共值;例如读取出特定的值StringjsonString=JSON.toJSONString(body);Map<String,Object>params=JSON.parseObject(jsonString);Objectlanguage=params.get...
在单元测试程序中,MAPPER.readValue(MAPPER.writeValueAsString(...), ...)这样的用法是因为使用restTemplate从response中将响应内容反序列化为带有泛型参数的对象时会将对象中的泛型的内容反序列化为LinkHashMap,因此借助ObjectMapper和TypeReference来直接获取到Student对象。 小节:由@ControllerAdvice注解修饰并实现ResponseB...
String encryptData = des.strEnc(JSON.toJSONString(out.getBean()), oldEncryptKey, null, null);//封装数据(清除原来数据,放⼊加密数据)out.getBean().clear();out.getBean().put("data", encryptData);return out;} catch (Exception e) { logger.error("返回报⽂处理出错", e);out.set...