@MRsunhuimin
2019-09-02T00:17:20.000000Z
字数 3641
阅读 244
SSM框架
使用注解前应扫包并开启注解
<!--自动扫描的包名,只扫描@Controller --><context:component-scan base-package="com.hz.controller" ><!--开启注解--><mvc:annotation-driven/>
标注一个普通的JavaBean成为可以处理请求的控制器
通过请求URL进行映射
//标识在类上@RequestMapping("/index")public class IndexController{//在方法上@RequestMapping(value="/ts",method = RequestMethod.GET)public ModelAndView index(){.....}method:RequestMethod.GET 必须以GET方式进入RequestMethod.POST 必须以POST方式进入params:{ "param1=value1" , "param2" , "!param3" }请求参数的映射条件,指定请求的URL地址需要带那些参数
参数传递
public ModelAndView index(@RequestParam(value = "name1",required = false) String user_name){.......}value:属性名,如:xxxx?name1=...required:是否必须 false为否defaultValue:默认值
只能定义在类上,作用是将指定的Model中的键值对添加至session中
//类中定义user_name存入session作用域@SessionAttributes(value = {"user_name"})public class IndexController {@RequestMapping("/ts")public ModelAndView index(){ModelAndView mav = new ModelAndView("user");//存入Request作用域和Session作用域mav.addObject("user_name",user_name);....}}@SessionAttributes(types=User.class)会将model中所有类型为 User的属性添加到会话中。@SessionAttributes(value={“user1”, “user2”}) 会将model中属性名为user1和user2的属性添加到会话中。@SessionAttributes(types={User.class, Dept.class}) 会将model中所有类型为 User和Dept的属性添加到会话中。@SessionAttributes(value={“user1”,“user2”},types={Dept.class})会将model中属性名为user1和user2以及类型为Dept的属性添加到会话中。
返回JSON数据
引入JSON依赖包<!--JSON依赖--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.4.3</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.4.3</version></dependency>@ResponseBody@RequestMapping("/testjson")public User jsons(@RequestParam long user_id){User user = this.userService.getUserById(user_id);return user;//直接返回对象}
@RequestMapping(value="/ts1")public String index1(@ModelAttribute("user") User user){user.setUser_name("张三");System.out.println(user.getUser_name());return "user";}
用户对象属性,控制入参时日期类型转换
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")private Date user_login_endtime;
返回JSON数据时日期类型处理
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")private Date user_login_endtime;
包含视图信息和模型数据信息
public ModelAndView index1(){//返回页面 转发ModelAndView mav = new ModelAndView("视图名");或ModelAndView mav = new ModelAndView();mav.setViewName("视图名");//存入值 Request作用域mav.addObject("键","值");return mav;}
以Map方式进行存储,用于向作用域中存值
public String index1(Model model){model.addAttribute("user_name","张三");return "user"; //返回user.jsp页面}//注意:在Model中增加模型数据,若不指定key,则默认使用对象的类型作为key
以Map方式进行存储,用于向作用域中存值
public String index1(Map<String ,Object> map){map.put("user_name","123");return "user";}
传入参数名必须与实体类对应,一般用于添加,修改类中多个属性时
@RequestMapping(value="/ts1")public String index1(User user){System.out.println(user.getUser_name());return "user";}
public String index1(User user){.....return "redirect:/user.jsp";//重定向return "forward:页面";//转发}
@RequestMapping(value="/ts1/{user_id}.html")public String index1(@PathVariable("user_id") Long user_id){System.out.println("id======"+user_id);return "user";}请求路径为:.../ts1/参数.html如:..../ts1/1.html或..../ts1/10.html
引入servlet-api.jar
<!--servlet-api--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency>public String cs(HttpServletRequest request, HttpServletResponse response, HttpSession session){session.setAttribute("username","123");return "user";}
- 清晰地角色划分
- 灵活的配置功能
- 提供了大量的控制器接口和实现类
- 真正做到与View层的实现无关(JSP、Velocity、Xslt等)
- 国际化支持
- 面向接口编程
- Spring提供了Web应用开发的一整套流程,不仅仅是MVC,他们之间可以很方便的结合一起