Springmvc与ajax交互返回各种值问题

前台js
后台Controller
怎样才能拿到int n,用了好几种方法一直为null,我要用n来判断~~~~~~~~springmvc与ajax交互怎么这么复杂,Struts2好简单,想转springmvc,大神跟我说说返回值String,int,Json怎么返回啊

6个回答

根据你提供的代码 我总结了 springmvc 的集中返回方式
第一种:使用springmvc的ModelAndView对象
第二种:封装一个map对象并返回
第三种:使用springmvc的Model对象
第四种:使用注解@ResponseBody方式
为了简化,我每一种方法我只举一个例子(其实每一种的实现方式是很多的)
第一种:使用springmvc的ModelAndView对象
ModelAndView modelAndView = new ModelAndView("/user/index");

modelAndView.addObject("name", "xxx");

return modelAndView;
创建ModelAndView视图对象,"/user/index"是你要返回哪一个视图所使用的方式
第二种:封装一个map对象并返回
Model一个模型对象,主要包含spring封装好的model和modelMap,以及java.util.Map
Map map = new HashMap();

map.put("1", "1");

//map.put相当于request.setAttribute方法

return map;
这种方式我没有试过 ,不过应该是可以的
第三种:使用springmvc的Model对象
这种方式比较常用,具体的实现方式请看下面
public String index(Model model) {

String retVal = "user/index";

User user = new User();

user.setName("XXX");

model.addAttribute("user", user);

return retVal;

}

第四种:使用注解@ResponseBody方式
这种方式是我们常用来返回json,xml等等数据格式的数据时使用的建议使用这种方式
@ResponseBody

public String valid(@RequestParam(value = "userId", required = false) Integer userId,

@RequestParam(value = "name") String name) {

return String.valueOf(true);

}

综上所述,基本上的问题都可以解决,
你使用的是用printWriter直接返回数据流,这种方法也是可以的,但是要注意的是 编码集格式要注意否则会出现中文乱码的情况
我看了下你的返回代码,不知道printWriter对象是否拿到了,我没这么拿过,响应时我都是使用response对象去拿这个对象
还有就是需要这一的问题是ajax需要设置下返回的数据类型,好像是“dataType”记得不是太清楚了 你可以试一试,我目前能想到的也就这么多了

这金币挣得真不容易啊!!!

qq_38287146
时刻准备超越自己 回复qq_29840857: 说的好啊
2 年多之前 回复
    public static void write(HttpServletResponse response,Object o)throws Exception{
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out=response.getWriter();
        out.println(o.toString());
        out.flush();
        out.close();
    }

没人知道吗?

如果非要使用这种方式的话 不介意的话把原代码给我发一下 我给你看看 这是我的qq:3421323065

楼上这回复也是可以了,佩服!能用的方式楼上都说了。一般如果要返回对象或者集合用model,像你这种情况一般用map,
返回到前台之后实际上就是一个json。解析里面的值就ok了

@RequestMapping("login")
@ResponseBody
public JSONObjcet login(xxx xxx){

    JSONObject result = new JSONObject();
    int n = 0;
    result.put("n",n);
    return result;

}

这里 JSONObject 也可以 是Map 也可以是你自己创建 的对象
注意 @ResponseBody 注解 不明白 自行google
spring mvc 很好用的.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!