全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Spring MVC 关于controller的字符编码问题

在使用springMVC框架构建web应用,客户端常会请求字符串、整型、json等格式的数据,通常使用@ResponseBody注解使 controller回应相应的数据而不是去渲染某个页面。如果请求的是非英文格式的字符串,往往在客户端显示的是乱码。原因是spring的 StringHttpMessageConverter默认的字符类型是iso8895-1 ‘西欧语言’,中文等字符需要单独指定。

这里总结几种解决方案:

1.不使用@ResponseBody注解,使用HttpServeletResponse设置contentType属性

@RequestMapping(value ="/rest/create/document") 
public void create(Document document, HttpServletRespone respone) { 
repoonse.setContentType("text/plain;charset='utf-8'"); 
response.write("中文string"); 
}

2.返回Response Entity object,设置contentType,例:

@RequestMapping(value = "/rest/create/document") public ResponseEntity<String> create(Document document, HttpServletRespone respone) { 
HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.add("Content-Type", "text/html; charset=utf-8"); 
Document newDocument = DocumentService.create(Document); 
String json = jsonSerializer.serialize(newDocument); 
return new ResponseEntity<String>(json, responseHeaders, HttpStatus.OK); 
}

3.使用produces属性:

@RequestMapping(value = "/rest/create/document",produces= "text/plain;charset=UTF-8") //返回的内容类型
@ResponseBody 
public String create(Document document, HttpServletRespone respone) throws UnsupportedEncodingException { 
Document newDocument = DocumentService.create(Document); 
return jsonSerializer.serialize(newDocument); 
}

@RequestMapping

参数绑定(@RequestParam、 @RequestBody、 @RequestHeader 、 @PathVariable)

package org.springframework.web.bind.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;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
  String name() default "";

  String[] value() default {};

  RequestMethod[] method() default {};

  String[] params() default {};

  String[] headers() default {};

  String[] consumes() default {};

  String[] produces() default {};
}

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

RequestMapping注解有六个属性。

1、value, method;

value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);

method: 指定请求的method类型, GET、POST、PUT、DELETE等;

2、consumes,produces;

consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

3、params,headers;

params: 指定request中必须包含某些参数值是,才让该方法处理。

headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# spring mvc 字符编码  # springmvc controller  # springmvc 编码  # 的是  # 客户端  # 都是  # 西欧  # 是一个  # 将会  # 英文  # 能让  # 几种  # 绑定  # 大家多多  # 才让  # 类中  # 而不是  # 为父  # 整型  # 以该  # 可用于  # void  # plain 


相关文章: 高端智能建站公司优选:品牌定制与SEO优化一站式服务  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  如何在Windows 2008云服务器安全搭建网站?  建站之星logo尺寸如何设置最合适?  常州自助建站费用包含哪些项目?  再谈Python中的字符串与字符编码(推荐)  公司网站制作需要多少钱,找人做公司网站需要多少钱?  如何在万网自助建站中设置域名及备案?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  建站主机系统SEO优化与智能配置核心关键词操作指南  七夕网站制作视频,七夕大促活动怎么报名?  建站之星后台管理:高效配置与模板优化提升用户体验  如何选择建站程序?包含哪些必备功能与类型?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Python多线程使用规范_线程安全解析【教程】  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  Python路径拼接规范_跨平台处理说明【指导】  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  建站之星如何取消后台验证码生成?  高防服务器租用指南:配置选择与快速部署攻略  如何在IIS7中新建站点?详细步骤解析  如何在阿里云服务器自主搭建网站?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  常州企业网站制作公司,全国继续教育网怎么登录?  建站主机是否等同于虚拟主机?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  代购小票制作网站有哪些,购物小票的简要说明?  ,在苏州找工作,上哪个网站比较好?  济南专业网站制作公司,济南信息工程学校怎么样?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  建站10G流量真的够用吗?如何应对访问高峰?  建站之星免费版是否永久可用?  广州美橙建站如何快速搭建多端合一网站?  如何快速搭建高效可靠的建站解决方案?  建站主机CVM配置优化、SEO策略与性能提升指南  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  如何在Windows服务器上快速搭建网站?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  建站主机选购指南:核心配置与性价比推荐解析  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  网站企业制作流程,用什么语言做企业网站比较好?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。