主题 : ResponseBody不能返回Map或者List等只能返回String
级别: 贡士
UID: 53609
积分:634 加为好友
威望: 6 精华: 0
主题:56 回复:218
注册时间:2013-10-22
在线时长:0
1#   发表于:2014-07-16 10:07:55  IP:60.40.*.*
我是逼不得已才来这里的,请看以下链接
http://bbs.jeecms.com/azsy/28782.jhtml
注意:Id为lfb100的工作人员请回避
中国好男人
级别: 总版主
UID: 10736
积分:149787 加为好友
威望: 212 精华: 42
主题:297 回复:127674
注册时间:2010-09-08
在线时长:90.1
2#   发表于:2014-07-16 10:13:14  IP:182.208.*.*
这里是action返回视图 这是springmvc的规则,视图配置的 根据视图名找到相关页面,所以视图名必须是字符串
路漫漫其修远兮,吾将上下而求索!
级别: 总版主
UID: 10736
积分:149787 加为好友
威望: 212 精华: 42
主题:297 回复:127674
注册时间:2010-09-08
在线时长:90.1
3#   发表于:2014-07-16 10:15:46  IP:182.208.*.*
您如果需要返回map或者list到页面是可以的,传递复杂类型到model中,在页面中获取展示,但是视图是不支持这复杂类型的,那里返回的只是个视图名字,就跟人名一样只能是字符
路漫漫其修远兮,吾将上下而求索!
级别: 贡士
UID: 53609
积分:634 加为好友
威望: 6 精华: 0
主题:56 回复:218
注册时间:2013-10-22
在线时长:0
4#   发表于:2014-07-16 10:17:40  IP:60.40.*.*
这里是action返回视图 这是springmvc的规则,视图配置的 根据视图名找到相关页面,所以视图名必须是字符串

你没用过ResponseBody这个注解吗,这个返回的是json,springmvc不一定都要返回视图啊,大家都是做程序的,你不要骗我
中国好男人
级别: 贡士
UID: 53609
积分:634 加为好友
威望: 6 精华: 0
主题:56 回复:218
注册时间:2013-10-22
在线时长:0
5#   发表于:2014-07-16 10:23:34  IP:60.40.*.*
您如果需要返回map或者list到页面是可以的,传递复杂类型到model中,在页面中获取展示,但是视图是不支持这复杂类型的,那里返回的只是个视图名字,就跟人名一样只能是字符

我当然知道返回一个页面的时候可以往Model里面塞任何东西然后在页面取出来,但是我要用ajax获取一些数据得时候是不是得用@ResponseBody这样的注解,返回json然后局部刷新页面,我相信这些你比我懂,您可以亲自试验一下,看看能不能行
中国好男人
级别: 总版主
UID: 10736
积分:149787 加为好友
威望: 212 精华: 42
主题:297 回复:127674
注册时间:2010-09-08
在线时长:90.1
6#   发表于:2014-07-16 10:52:10  IP:182.208.*.*
您不想返回视图,是否可以用这种方式,直接Response返回json
@RequestMapping(value = "/content_down.jspx", method = RequestMethod.GET)
public void contentDown(Integer contentId, HttpServletRequest request,
HttpServletResponse response) throws JSONException {
if (contentId == null) {
ResponseUtils.renderJson(response, "false");
} else {
contentCountMng.contentDown(contentId);
ResponseUtils.renderJson(response, "true");
}
}
路漫漫其修远兮,吾将上下而求索!
级别: 贡士
UID: 53609
积分:634 加为好友
威望: 6 精华: 0
主题:56 回复:218
注册时间:2013-10-22
在线时长:0
7#   发表于:2014-07-16 11:12:06  IP:60.40.*.*
您不想返回视图,是否可以用这种方式,直接Response返回json
@RequestMapping(value = "/content_down.jspx", method = RequestMethod.GET)
public void contentDown(Integer contentId, HttpServletRequest request,
HttpServletResponse response) throws JSONException {
if (contentId == null) {
ResponseUtils.renderJson(response, "false");
} else {
contentCountMng.contentDown(contentId);
ResponseUtils.renderJson(response, "true");
}
}

我要刷新页面的话当然是要获取数据比如获取一个List<User>去页面显示注册的用户列表,你告诉我返回一个ture或者false能干什么,还有你试过返回一个map或者list了吗
中国好男人
级别: 总版主
UID: 10736
积分:149787 加为好友
威望: 212 精华: 42
主题:297 回复:127674
注册时间:2010-09-08
在线时长:90.1
8#   发表于:2014-07-16 11:28:26  IP:182.208.*.*
返回list和map也是可以的。。。您既然这么坚持使用ResponseBody 需要修改配置文件和加jar包
jeecms-servlet-front.xml 修改以下配置
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="com.jeecms.common.web.springmvc.BindingInitializer"/>
</property>
<property name="messageConverters">  
  <list>  
   <bean  
    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />  
  </list>  
</property> 
</bean>
jar包
jackson-core-asl-1.9.12.jar
jackson-mapper-asl-1.9.12.jar
经测试复杂对象的list或者map也有些问题,二次开发方面的问题需要购买支持服务的,只能到这了,我也不太推荐这么使用,您返回这里的数据的样式不好指定
路漫漫其修远兮,吾将上下而求索!
级别: 贡士
UID: 53609
积分:634 加为好友
威望: 6 精华: 0
主题:56 回复:218
注册时间:2013-10-22
在线时长:0
9#   发表于:2014-07-16 13:53:36  IP:60.40.*.*
您说的方法我都测试过不好使相信您也发现这个不好使了,至于您说我的返回数据类型太苛刻我只能呵呵了,要是只能返回true,false那springmvc的这个注解还有什么用,我不相信付费用户就能用这个功能,希望记录一下这个bug并修正,谈钱伤感情,我们来提意见不是为了找茬,而是希望你们的产品越来越完善,希望你们正视这一点并尊重我们,谢谢
中国好男人
级别: 总版主
UID: 10736
积分:149787 加为好友
威望: 212 精华: 42
主题:297 回复:127674
注册时间:2010-09-08
在线时长:90.1
10#   发表于:2014-07-16 16:05:48  IP:182.208.*.*
map里面string类型val是可以的,测试过的,对象类型的不行,对象类型的数据直接装到list或者map 直接return,不要页面解析下这个集合直接使用?
路漫漫其修远兮,吾将上下而求索!
1 2 > >| 共2页