Spring控制器响应(action)请求的几种处理方式,如返回JSON,MODEL MODELVIEW,STRING

Controller:

package **.web.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.google.gson.JsonObject;
import com.hunantv.ott.loganalysis.persistence.beans.TestBean;
/**
 * this class just for example ,please read spring reference in detail.
 *
 * just for controller use case demo by xiaohelong
 */
import dwz.business.info.News;
import dwz.business.info.NewsType;
import dwz.persistence.BaseConditionVO;
import dwz.web.BaseController;
@Controller
public class OttControlerTest extends BaseController{
	static Logger log = Logger.getLogger(
			OttControlerTest.class.getName());
	@RequestMapping("/Test")
	@ResponseBody
	public TestBean  test (){
	log.debug("Test function");
	TestBean testBean=new TestBean();
	testBean.setName("haha");
		return testBean;
	}
	@RequestMapping("/TestList")
	@ResponseBody
	public List<TestBean>  testList (){
	log.debug("TestList function");
	List<TestBean> testBeanList=new ArrayList<TestBean>();
	TestBean testBean1=new TestBean();
	testBean1.setName("haha");
	TestBean testBean2=new TestBean();
	testBean2.setName("hehe");
	testBeanList.add(testBean1);
	testBeanList.add(testBean2);
		return testBeanList;
	}
	@RequestMapping("/TestJSONObject")
	public void  testReturrnJSONWithoutBean(HttpServletRequest request,HttpServletResponse response) throws IOException{
		log.debug("TestJSONObject function");
		PrintWriter writer=response.getWriter();
		JsonObject jsonObject=new JsonObject();
		jsonObject.addProperty("name","hehe jsonobject");
		writer.println(jsonObject.toString());
		writer.close();
		}
	@RequestMapping("/TestReturnPage")
	@ResponseBody
	public String  testReturrnPage(){
		log.debug("TestReturnPage");
			return "/testpage";
		}	

	/**
	 * The difference between model and modelandview is just sematic
	 * */
	@RequestMapping("/TestReturnModel")
	public String  testReturnModel(Model model){
		log.debug("testReturrnModel");
		model.addAttribute("testmodel", "hello model");
			return "testpage";
		}
	/**
	 * The difference between model and modelandview is just sematic
	 * */
	@RequestMapping("/TestReturnModelAndView")
	public ModelAndView  testReturnModelAndView(){
		log.debug("testReturrnModel");
		ModelAndView mav = new ModelAndView("testpage");
		mav.addObject("testmodel", "hello test model");
			return mav;
		}
	/*
	@RequestMapping("")
	public String list(BaseConditionVO vo, Model model) {
		List<News> newsList = newsMgr.searchNews(vo);
		int totalCount = newsMgr.searchNewsNum(vo);
		vo.setTotalCount(totalCount);
		model.addAttribute("newsTypes", NewsType.values());
		model.addAttribute("newsList", newsList);
		model.addAttribute("vo", vo);
		return "/management/news/list";
	}*/
}

Class TestBean:

package **.persistence.beans;

public class TestBean {
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	String name;
}
时间: 2024-07-29 22:01:40

Spring控制器响应(action)请求的几种处理方式,如返回JSON,MODEL MODELVIEW,STRING的相关文章

Struts2系列笔记(3)---Action类的3种书写方式

Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 (2)实现Action接口 (3)继承ActionSupport(推荐) 那我们先来书写第一种: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 1 //这里其实就是一个普通的类,类里面的方法可以任意写,如果写execute()方法那就代表默认执行它 2 pub

spring注解之@Import注解的三种使用方式

目录 1.@Import注解须知 2.@Import的三种用法 3.@Import注解的三种使用方式总结 @ 1.@Import注解须知 1.@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加入spring的IOC容器中 ? 2.加入IOC容器的方式有很多种,@Import注解就相对很牛皮了,@Import注解可以用于导入第三方包 ,当然@Bean注解也可以,但是@Import注解快速导入的方式更加便捷 ? 3.@Import注解有三种用法 2.@Import的三种用法

Struts1 生成Action请求的几种方式分析

1 直接硬编码 <a href="/Lesson14_Struts1_Demo1//user/regUserDo.do">注册</a><br/> 项目名,请求后缀,都是固定死的 2 使用EL表达式 <a href="${pageContext.request.contextPath}/user/regUserDo.do">注册</a><br/> 项目名称实现了动态获取,但是请求后缀还是固定 3

【协议分析】HTTP响应头中的2种编码方式介绍

HTTP 1.1中有两个实体头(Entity-Header)直接与编码相关,分别为Content-Encoding和Transfer-Encoding.    先说Content-Encoding, 该头表示实体已经采用了的编码方式.Content-Encoding是请求URL对应实体(Entity)本身的一部分.比如请求URL为 http://host/image.png.gz时,可能会得到的Content-Encoding为gzip.Content-Encoding的值是不区分大小写的,目前

获取post请求的几种常见方式

通常从http post请求获取数据的方法如下:1.request.getInputStream()2.request.getReader()3.request.getParameterMap()系列4.通过spring框架中的RequestBody或RequestParam public static String req2RawString(HttpServletRequest request) {          StringBuilder sb = new StringBuilder(

php笔记04:get/post请求有两种主要方式

get/post的区别有哪些? 1. 安全性get请求的数据会显示在地址栏上,post请求的数据,放在http协议的消息体中 2. 从可以提交的数据大小来看: http协议本身并没有限制数据大小 浏览器在对get和post请求做显示,get请求数据为2K+35,post没有显示 3. get请求可以更好的添加到收藏夹 来自为知笔记(Wiz)

跨域请求的两种实现方式

Jsonp 域1 index.html <script> $(".get-service").click(function () { $.ajax({ url: "http://127.0.0.1:8005/service/", type: "get", dataType: "jsonp", jsonp: "callbacks", // 伪造ajax, 基于script // jsonpCall

利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据

1:跨域请求handler一般处理程序 using System; using System.Collections.Generic; using System.Web; using System.Web.Services; namespace CrossDomain { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.

Spring MVC 中 AJAX请求并返回JSON

一.以ModelAndView的方式返回 先看下JavaScript代码: 1 /** 2 * 保存-同步(版本控制库) 3 */ 4 function saveSynchronizedVcHorse(obj) { 5 var ss = $("#SynchronizedSelection div"); 6 var cacheSelectAry = new Array() 7 for(var i = 0; i < ss.length; i ++) { 8 //alert(ss.eq