package com.zwq.springmvc.handlers;
import java.io.IOException;
import java.io.Writer;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;
import com.zwq.springmvc.entity.User;
@SessionAttributes(value={"user"},types={String.class})
@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest {
private static final String SUCCESS="success";
@ModelAttribute
public void getUser(@RequestParam(value="id",required=false) Integer id,Map<String, Object> map){
System.out.println("ModeAttribute mthod");
if(id!=null){
User user=new User(1,"zwq","123456",15,"zwq@zwq.com");
System.out.println("从数据库中获取一个对象:"+user);
map.put("user", user);
}
}
@RequestMapping("/testModeAttribute")
public String testModeAttribute(User user){
System.out.println("修改:"+user);
return SUCCESS;
}
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Map<String, Object> map){
User user=new User("Tom","123",16,"123@qq.com");
map.put("user", user);
map.put("school","zwq");
return SUCCESS;
}
@RequestMapping("/testMap")
public String testMap(Map<String, Object> map){
map.put("names", Arrays.asList("123","Jack","Tom"));
return SUCCESS;
}
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
String viewName=SUCCESS;
ModelAndView modelAndView=new ModelAndView(viewName);
modelAndView.addObject("time",new Date());
return modelAndView;
}
@RequestMapping("/testServletAPI")
public void testServletAPI(HttpServletRequest request,HttpServletResponse response,Writer out) throws IOException{
System.out.println("request:"+request+"response:"+response);
out.write("hello springmvc");
// return SUCCESS;
}
@RequestMapping("/testPojo")
public String testPojo(User user){
System.out.println("testPojo:"+user);
return SUCCESS;
}
@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue(value="JSESSIONID") String sessionid){
System.out.println("testCookieValue SESSIONID:"+sessionid);
return SUCCESS;
}
@RequestMapping("/testRequestHeader")
public String testRequestHeader(@RequestHeader(value="Accept-Language") String al){
System.out.println("testRequestHeader Accept-Language:"+al);
return SUCCESS;
}
@RequestMapping(value="/testRequestParam")
public String testRequestParam(@RequestParam(value="username") String un,
@RequestParam(value="age",required=false,defaultValue="0") Integer age){
System.out.println("testRequestParam username:"+un+",age:"+age);
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)
public String testRestPUT(@PathVariable Integer id){
System.out.println("testRest PUT:"+id);
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)
public String testRestDELETE(@PathVariable Integer id){
System.out.println("testRest DELETE:"+id);
return SUCCESS;
}
@RequestMapping(value="/testRest",method=RequestMethod.POST)
public String testRestPost(){
System.out.println("testRest POST");
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)
public String testRest(@PathVariable Integer id){
System.out.println("testRest GET:"+id);
return SUCCESS;
}
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id){
System.out.println("testPathVariable:"+id);
return SUCCESS;
}
}