-
/**
* @RequestMapping 除了修饰方法 还可以修饰类
* 1).类定义处:提供初步的请求映射信息,相当于WEB应用的根目录
* 2).方法定义处,提供进一步的细分映射信息,相对于类定义处的URL.若类定义处没有标注的话,
* 则方法处的标记URL相当于WEB应用的根目录
* @author Hh。
*
*/
@Controller
@RequestMapping("springmvc")
public class Test3 {
private static final String SUCCESS = "success";
@RequestMapping("/test3")
public String test3(){
System.out.println("测试");
return SUCCESS;
}
-
/*
* 常用:使用method属性来制定请求方式
*/
@RequestMapping(value="/test4",method=RequestMethod.POST)
public String test4(){
System.out.println("测试4");
return SUCCESS;
}
-
/**
* 了解 : 可以使用params 和headers 来更加精确的映射请求
* params 和 headers 支持简单的表达式
* @return
*/
@RequestMapping(value="test5",params={"username","age!=10"},headers={})
public String test5(){
System.out.println("测试5");
return SUCCESS;
}
-
/**
* 了解: @RequestMapping 支持通配符的情况
* @return
*/
@RequestMapping("/test6/*/abc")
public String test6(){
System.out.println("test6");
return SUCCESS;
}
-
/**
* @PathVariable("id") 可以来听蛇url中的占位符到目标参数方法中
* @return
*/
@RequestMapping("/test7/{id}")
public String test7(@PathVariable("id") Integer id){
System.out.println(id);
return SUCCESS;
}
-
/*
* @RequestParam 来映射请求参数
* value 值即请求参数的参数名
* required 该参数是否必须 默认为true
* defaultValue 请求参数的默认值
*/
@RequestMapping("/test8")
public String test8(@RequestParam(value="username") String un,
@RequestParam(value="age",required=false,defaultValue="0")int age){
System.out.println(un+"***"+age);
return SUCCESS;
}
-
/*
* 了解
* @CookieValue: 映射一个cookie值 属性同前面的@RequestParams
*/
@RequestMapping("/test9")
public String test9(@CookieValue("JSESSIONID") String sessionId){
System.out.println("test9"+sessionId);
return SUCCESS;
}
-
/*
* Spring MVC 会按请求参数名和POJO 属性名进行自动匹配,
* 自动为该对象填充属性值, 支持级联属性
* 如:dept.deptID dept.address.tel等
*/
@RequestMapping("/test11")
public String test11(Man man){
System.out.println("test11:"+man);
return SUCCESS;
}
-
/*
* 可以使用Servlet原声API作为目标方法的参数
* HttpServletRequest
* HttpServletResponse
* HttpSession
* java.security.Principal
* Locale InptuStream
* OutputStream
* Reader
* Writer
*/
@RequestMapping("/test10")
public void test10(HttpServletRequest request,
HttpServletResponse response ,Writer out) throws IOException {
System.out.println("test10" + request + "," + response);
out.write("hello");
// return SUCCESS;
}
-
/*
* 目标方法的返回值可是是modelandview类型
* 其中可以包含视图和模型信息
* SpringMVC 会把ModelAndView 中的model 数据放入到 request 域对象中
*/
@RequestMapping("/test12")
public ModelAndView testModelAndView(){
String viewName= SUCCESS;
ModelAndView modelAndView = new ModelAndView(viewName);
//添加模型数据到ModelAndView 中.
modelAndView.addObject("time",new Date());
return modelAndView;
}
-
信息打印方法
-
time:${requestScope.time}
<br>
name:${requestScope.name}
-
/*
* 目标方法可以添加Map(也可以是Model 类型或 ModelMap类型)类型的参数
*/
@RequestMapping("/test13")
public String testMap(Map<String, Object> map){
System.out.println(map.getClass().getName());
map.put("name", Arrays.asList("Tom","Jerry","Mike"));
return SUCCESS;
}
-
/*
* SessionAttributes(value={"man"},types={String.class})
* 除了可以通过属性名指定需要放到回话中的属性外(实际上使用过的value属性值)
* 还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中(实际上使用的是type属性值)
* 注意:该注解只能放在类上面,而不能修饰方法
*/
@RequestMapping("/test14")
public String testSessionAttribute(Map<String,Object> map){
Man man = new Man("Tom", "123456", "123@qq.com", 12);
map.put("man", man);
map.put("school", "jereh");
return SUCCESS;
}
- 显示类属性
-
@RequestMapping("/test15")
public ModelAndView test15(Man man){
String viewName = SUCCESS;
ModelAndView modelAndView = new ModelAndView(viewName);
modelAndView.addObject("man",new Man("Tom", "123456", "123@qq.com", 12));
return modelAndView;
}
-