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

发布于 2021-11-27 18:38:47 字数 222 浏览 845 评论 6

如题,有这样一个需求,

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

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

那如何写springmvc 的controller的方法 ?

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


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

清欢 2021-12-03 17:25:44

用ModelAndView

旧城烟雨 2021-12-03 17:25:20
@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("页面链接");
        }
    }
}

绝影如岚 2021-12-03 16:17:07

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

大概方式是这样的

@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;
	}
}

残花月 2021-12-03 12:52:02

大概方式是这样的

@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;
	}
}

倚栏听风 2021-12-03 04:32:58

可以参考http://ketayao.com/view/73

做个少女永远怀春 2021-12-02 01:42:03

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文