springMVC 如何动态改变返回类型 json 或者 view

sucanber 发布于 2016/02/17 18:16
阅读 2K+
收藏 0

如题,有这样一个需求,

http://a.b.com/user/json 返回json数据

http://a.b.com/user/html 返回一个页面

那如何写springmvc 的controller的方法 ?

@ResponseBody 只返回json 而 ModelAndView或String 返回页面


加载中
1
公孙二狗
公孙二狗

往 HttpResponse 里写 JSON 数据,不在方法上用 @ResponseBody

0
金贞花
金贞花
mvc:return-value-handlers 
0
小菜的粉丝
小菜的粉丝
可以参考http://ketayao.com/view/73
0
sucanber
sucanber

引用来自“小菜的粉丝”的评论

可以参考http://ketayao.com/view/73
用拦截器也不错,只是在这个小场景有点小题大做
0
灰机的灰
灰机的灰

大概方式是这样的

@Controller
@RequestMapping("/user")
public class MyController{
	@RequestMapping(value = "/json", method = RequestMethod.GET)
	@ResponseBody
	public Map<String,Object> getSomething(){
		Map<String, Object> resultMap = new HashMap<String, Object>();
		//do something
		return resultMap;
	}
	
	@RequestMapping(value = "/html", method = RequestMethod.GET)
	public String index(Map<String, Object> model) {
		String page = "example";
		return page;
	}
}



0
sucanber
sucanber

引用来自“灰机的灰”的评论

大概方式是这样的

@Controller
@RequestMapping("/user")
public class MyController{
	@RequestMapping(value = "/json", method = RequestMethod.GET)
	@ResponseBody
	public Map<String,Object> getSomething(){
		Map<String, Object> resultMap = new HashMap<String, Object>();
		//do something
		return resultMap;
	}
	
	@RequestMapping(value = "/html", method = RequestMethod.GET)
	public String index(Map<String, Object> model) {
		String page = "example";
		return page;
	}
}



。。。 我就是不想分别写两个方法才提问的。。
0
Sel8616
Sel8616
@Controller
@RequestMapping("/user")
public class MyController
{
    @RequestMapping(value = "/{type}", method = RequestMethod.GET)
    @ResponseBody
    public Object xxxx(HttpServletResponse response, @PathVariable(defaultValue="html") String type) 
    {
        if(type.equals("json")
        {
            Object result = ......
            return result;
        } else if(type.equals("html")
        {
            response.sendRedirect("页面链接");
        }
    }
}



0
c
chinfar
用ModelAndView
返回顶部
顶部