qq_303453672
2017-05-12 05:52
采纳率: 12.5%
浏览 2.9k
已采纳

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • qq_29840857 2017-05-12 06:33
    已采纳

    根据你提供的代码 我总结了 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_303453672 2017-05-12 06:21

    没人知道吗?

    点赞 打赏 评论
  • qq_29840857 2017-05-12 06:35

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

    点赞 打赏 评论
  • 没伞的孩子只能跑 2017-05-12 06:42

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

    点赞 打赏 评论
  • AngusC· 2017-05-12 07:16
        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();
        }
    
    点赞 打赏 评论
  • _小_小_ 2017-05-12 08:49

    @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 很好用的.

    点赞 打赏 评论

相关推荐 更多相似问题