中易网

spring mvc怎么处理返回值

答案:3  悬赏:10  
解决时间 2021-04-22 07:41
spring mvc怎么处理返回值
最佳答案
以下是SpringMvc原生支持的返回类型,如果返回Json,可以用Json String或者Map,

  ModelAndView
  Model
  ModelMap
  Map
  View
  String
  Void

  还可以返回类,操作步骤见下面介绍。

  

  需要注意的是,SpringMvc与Jackson结合使用时,如果返回的是一个
Object、或者返回的Map中是Object型的,就需要对Object中的成员变量加注解,否则会报
错:org.springframework.web.HttpMediaTypeNotAcceptableException: Could not
find acceptable representation,500 code error。

  原因是 Jackson 默认情况下不知道怎么去序列化,方法有:

  1.为成员变量增加getter、setter方法

  2. 或者也可以给field加上 @JsonProperty 注解,(也可在getter上加)  , 还能用它指定序列化时的属性名

  

  @JsonProperty可以标注在field或者getter上,

  Defines name of the logical property, i.e.
Json object field name to use for the
property(i.e. @JsonProperty("GID") ): if empty String (which is the
default), will use name of the field that is annotated.

  

  代码示例:

 
 class ItemContent {
  private int gid;
  private int sid;
  private Date createTime;
  private String gname;
  private String name;
  private String nologinUrl;

  @JsonProperty
  int getGid() {
  return gid;
  }

  void setGid(int gid) {
  this.gid = gid;
  }

  @JsonProperty
  int getSid() {
  return sid;
  }
  .............................

  @RequestMapping(value = "/dissert/getServerList.do")
  @ResponseBody
  public Object getServerList(HttpServletRequest request) {
  Map resultMap = new HashMap();
  ..................................
  List tempList = new ArrayList();
  for (GameServer gameServer : listServers) {
  ......................
  ItemContent item = new ItemContent();
  item.setGid(gameServer.getGid());
  item.setGname(gameServer.getGname());
  item.setSid(gameServer.getSid());
  item.setName(gameServer.getName());
  item.setCreateTime(gameServer.getCreateTime());

  }
  tempList.add(item);
  }
  }
  resultMap.put("open", tempList);
  return resultMap;
  }
全部回答
spring mvc怎么返回json三种方法:   1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个jsoniew。   如:   或者   同样要用jackson的jar包。   2、第二种使用json工具将对象序列化成json,常用工具jackson,fastjson,gson。   利用httpservletresponse,然后获取response.getoutputstream()或response.getwriter()   直接输出。   3、第三种利用spring mvc3的注解@responsebody   例如:   [java] view plain copy print?   @responsebody   @requestmapping("/list")   public list list(modelmap modelmap) {   string hql = "select c from clothing c ";   page page = new page();   page.setpagesize(6);   page  = clothingserviceimpl.queryforpagebyhql(page, hql);      return page.getresult();   }
对于springMVC处理方法支持支持一系列的返回方式: ModelAndView Model ModelMap Map View String Void 具体内容可以参考:https://my.oschina.net/bosscheng/blog/126941
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
实况8射门球怎么才能不离开地面!(推射)
我想要的答案
我不记得密码了,谁知道QQ密码在什么地方可以
一个棱长为3米的正方体蓄水池占地面积为27平
dnf闪灵套装属性
花墙门地址有知道的么?有点事想过去
西安哪有好点的书法培训班?
西门子开关插座好吗?
为什么我发短信给他,基本上都不回
究竟是谁将我的QQ发到网上还P了图说是周杰伦
1米3的儿童要买高铁票用什么证件吗
我是小豆面馆的加盟商,这是他们给我触摸屏收
我想买一个大一点的绒毛娃娃,可以抱着睡觉的
我在春天播的种子、秋天就一定会有所收获吗?
qq农场怎样赚钱?
推荐资讯
谁帮我把 眯眯眼 三个字 打成繁体字
推荐一些好看的有意义的帖子
工人身份技师和副科级退休之后的工资差距
常平火车站有往来签证香港的吗
丝路英雄中初出茅庐中的侦查准备如何完成
天润物流怎么去啊,有事要去办理
刚拿到的N82,谁能教用啊?
DNF封印石碎片任务要几个
文章+承认+婚外情马伊俐2胎生的啥
索尼PSP3000 破解问题。
羊水偏多,胎儿腹围超过正常值2SD以上是怎
请问手机内装两张卡,对手机QQ有没有影响?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?