目录
? 示例
<a href="${pageContext.request.contextPath}/first.action">第一个请求</a>
<a href="${pageContext.request.contextPath}/second.action">第二个请求</a>
@RequestMapping(value = {"first","second"})
public String testquest(){
System.out.println("testquest--------------");
return "/result.jsp";
}
? 示例
<form action="${pageContext.request.contextPath}/testMethod" method="post">
<input type="submit" value="测试testMethod">
</form>
@RequestMapping(
value = {"testMethod"},
method = {RequestMethod.POST,RequestMethod.GET}
)
public String testrestDELETE(Model model){
model.addAttribute("msg","请求"+id);
return "/result.jsp";
}
?
? 示例
<a href="${pageContext.request.contextPath}/testMethod.action?name=le&age=22" method="post">请求
</a>
@RequestMapping(
value = {"testMethod"},
method = {RequestMethod.POST,RequestMethod.GET},
params={"name=le","age!=2"}
)
public String testrestPOST(Model model){
model.addAttribute("msg","请求"+id);
return "/result.jsp";
}
?
? 示例
@RequestMapping(
value = {"testMethod"},
method = {RequestMethod.POST,RequestMethod.GET},
params = {"name=le","age!=2"},
headers = {"Host=localhost:8080","Referer:http://localhost:8080/index.jsp"}
)
public String testrestPOST(Model model){
model.addAttribute("msg","请求"+id);
return "/result.jsp";
}
?
? 请求路径的一种匹配方法
? 一个?匹配一个字符
<a href="${pageContext.request.contextPath}/ant/a/testAnt.action" method="post">请求ant路径
</a>
@RequestMapping("/ant/?/testAnt")
public String testAnt(Model model){
return "/result.jsp";
}
?
<a href="${pageContext.request.contextPath}/ant/ab/testAnt.action" method="post">请求ant路径
</a>
@RequestMapping("/ant/??/testAnt")
public String testAnt(Model model){
return "/result.jsp";
}
? 匹配任意字符
?
<a href="${pageContext.request.contextPath}/ant/abc/testAnt.action" method="post">请求ant路径
</a>
@RequestMapping("/ant/*/testAnt")
public String testAnt(Model model){
return "/result.jsp";
}
? 匹配多重路径
<a href="${pageContext.request.contextPath}/ant/a/b/ccc/testAnt.action" method="post">请求ant路径
</a>
@RequestMapping("/ant/**/testAnt")
public String testAnt(Model model){
return "/result.jsp";
}
?
<a href="${pageContext.request.contextPath}/restful/2.action" method="post">请求ant路径
</a>
@RequestMapping("/restful/{id}")
public String testRestful(@PathVariable int id){
System.out.println(id);
return "/result.jsp";
}
?
<filter>
<filter-name>hiddenmethod</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hiddenmethod</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置SpringMVC前端控制器 -->
<servlet>
<servlet-name>mySpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 指定SpringMVC配置文件 -->
<!-- SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mySpringMVC</servlet-name>
<!-- 拦截所有,不包括jsp,包含.js .png.css 建议使用 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
?
<form action="${pageContext.request.contextPath}/restful/1.action" method="post">
<input type="hidden" name="_method" value="put">
<input type="submit" value="测试testRestForm">
</form>
@RequestMapping(value = "/restful/{id}",method = RequestMethod.PUT)
public String testRestful(@PathVariable int id){
System.out.println(id);
return "redirect:/result.action";
}
@RequestMapping("result")
public String re(){
System.out.println(id);
return "/result.jsp";
}
?
? 示例
@RequestMapping("testHeader")
public String testHeader(
@RequestHeader("Host") String host,
@RequestHeader("Referer") String referer,
@RequestHeader("Cookie") String cookie){
System.out.println(host);
System.out.println(referer);
System.out.println(cookie);
return "/result.jsp";
}
? 示例
@RequestMapping("testHeader")
public String testHeader(
@CookieValue("JSESSIONID") String sessionid){
System.out.println(sessionid);
return "/result.jsp";
}
?
@RequestMapping("testModel")
public String testModel(Model model){
//Model addAttribute(String attributeName, Object attributeValue);
//添加键值属性对
model.addAttribute("name","le");
//Map<String, Object> asMap();
//将当前的model转换成Map
System.out.println(modal.asMap());
User user = new User();
user.setName("le");
//Model addAttribute(Object attributeValue);
//以属性的类型为键添加属性
model.addAttribute(user);
System.out.println("以属性的类型为键添加属性后:"+modal.asMap());
Map map = new HashMap();
map.put("name","le");
//Model addAllAttributes(Map<String, ?> attributes);
//将attributes中的内容复制到当前的model中
//如果当前model存在相同内容,会被覆盖
modal.addAllAttributes(map);
System.out.println("在addAllAttributes中添加map后:"+modal.asMap());
ArrayList collection = new ArrayList<>();
collection.add("le001");
collection.add("le001");
collection.add(123);
//Model addAllAttributes(Collection<?> attributeValues);
//以集合中数据的类型做为key
//将所提供的Collection中的所有属性复制到这个Map中
//如果有同类型会存在覆盖现象
modal.addAllAttributes(collection);
System.out.println("在addAllAttributes中添加collection后:"+modal.asMap());
//Model mergeAttributes(Map<String, ?> attributes);
//将attributes中的内容复制到当前的model中
//如果当前model存在相同内容,不会被覆盖
modal.mergeAttributes(map);
System.out.println("mergeAttributes后"+modal.asMap());
//boolean containsAttribute(String attributeName);
//判断当前model是否存在属性名为attributeName的属性
//存在返回true,否则返回false
System.out.println(modal.containsAttribute("le"));
return "/result.jsp";
}
@Controller
//value 把model当中key为name存到session
//types 把model当中的指定类型全部写到session
//@SessionAttributes(value = {"name","name2"})
//@SessionAttributes(types = String.class)
//@SessionAttributes(types = {User.class,Product.class},value={“attr1”,”attr2”})
@SessionAttributes(value = "sessionGoodsKey")
public class MyController {
@RequestMapping("testModelandView")
public ModelAndView testModelandView(){
ModelAndView modelAndView = new ModelAndView();
//把数据写到request域
modelAndView.addObject("name","le");
modelAndView.setViewName("result.jsp");
return modelAndView;
}
}
@Controller
@SessionAttributes(value = {"user"})
public class MyController {
//使用@SessionAttribute来访问预先存在的全局会话属性
//如果不存在,则报错
@RequestMapping("testModel")
public String testModel(@SessionAttributes("user") User user){
System.out.println("user = "+user);
return "/result.jsp";
}
}
//此注释会将此方法在对应的RequestMapping映射方法执行之前自动调用
@ModelAttribute
public String testModelAttribute(){
System.out.println("ModelAttribute执行了");
return "result.jsp";
}
//会自动的对应的模型存放在model
@RequestMapping("testFormModel")
public String testModelAttribute(@ModelAttribute("modelGoods") Goods mygoods,Model model){
System.out.println(model.asMap());
return "result.jsp";
}
//会自动的对应的模型存放在model
//传入参数后,参数会自动传入model当中
//key值为类型名,但是要首字母小写
@RequestMapping("testFormModel2")
public String testModelAttribute2(Goods mygoods){
System.out.println(model.asMap());
return "result.jsp";
}
原文:https://www.cnblogs.com/mumuyinxin/p/10921758.html