随记 不全勿喷
1.@Controller这个就不解释了 注解一个类为Controller
2.Spring MVC 配置文件中的视图解析器
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
3.web.xml配置(Spring MVC必须的配置)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
4.@RequestMapping(value="",method={RequestMethod.POST},params="")
①此时jsp页面的表单使用 post方法 若不加 method={RequestMethod.POST} 则可以处理任意的HTTP请求方式 params 指定request中必须包含某些参数值时,才让该方法处理
②注解在方法上,可以使用http://localhost:8080/项目名/value的值访问该方法
③注解在类上,所有路径都加上/value的值 这是需要注意jsp页面到Controller的方法的路径问题
5.Model,ModelMap,ModelAndView 区别
①使用其对象存储数据 model.addAttribute("user",user); modelMap.addAttribute("user",user); modelAndView.addObject("user",user);
②ModelAndView 可添加视图路径(前端页面路径) modelAndView.setViewName("路径")
③获取存储数据 User user =(User) model.asMap().get("user"); User user =(User) modelMap.get("user"); User user =(User) modelAndView.getModel().get("user");
④作用域相当于 request
6.@RequestParam(value="",name="",required=ture/false,defaultValue="") 在方法的参数位置
①name 指定请求头绑定的名称
②value name属性的别名
③required 为true时 不传参会报错
④defaultValue 如果没有传参则使用默认值
7.@SessionAttribute(names="",types={User.class,Boke.class},value={"user","results"})
①names model中的属性名
②value names的别名
③types 指定参数是否必须绑定(我理解的是 value 对应的类型)
8.@ModelAttribute(value="") 注:只有这一个属性 属性类型为String
①注释在方法上 这时会在Controller的每个方法执行前被调用,因此,在一个Controller映射多个URL时,要谨慎使用
②注释返回具体类的方法 百度
③注释 void 返回值方法 百度
④注释返回具体类的方法 百度
⑤@ModelAttribute 和 @RequestMapping同时注释一个方法 百度
⑥注释一个方法的参数 百度
9.数据绑定(举例):
①前端页面:<input type="text" name="username">
跳转Controller的 aaa 方法时,public String aaa(String username){}
这时,前端的username的值会传给同名的参数username
②前端页面:<input type="text" name="username">
如过有一个名为User的javaBean 该bean中有username,password属性
这时 跳转Controller的 aaa 方法时,public String aaa(User user){}
前端的username的值会传给 user 对象的username属性中