美文网首页
Day04:开始编写Web程序

Day04:开始编写Web程序

作者: 宇宙超人喵学长 | 来源:发表于2017-07-27 17:09 被阅读0次

    1、Spring MVC基础

    1.1 请求追踪

    • 用户点击链接或提交表单:请求开始
    • step1:Spring的DispatcherServlet前端控制器,将请求发送给spring mvc控制器(controller)【通过处理器映射handler mapping确定走向哪个控制器】
    • step2:控制器处理请求,请求卸下负载并等待返回信息
    • step3:控制器对model加工打包,返回模型和视图名给dispatcherservlet
    • step4:dispatcherservlet使用视图解析器view resolver根据视图名匹配视图实现
    • step5:视图使用模型数据渲染输出并传递给客户端

    1.2 配置dispatcherservlet

    继承 AbstractAnnotationConfigDispatcherServletInitializer getServletMappings() //映射 getServletConfigClasses() //指定配置类

    1.3 测试

    • 将controller忽略注解,当成pojo来测试
    • 按照控制器的方法测试:TestController controller = new TestController(); MockMvc mockMvc = standaloneSetup(controller).build(); mockMvc.perform(get("/")).addExpect(view().name("home"));//对“/”进行get请求并预期的home视图

    1.4 查询参数

    /spittles/show?spittle_id=12345 从面向资源的角度来看这并不理想,在理想的情况下,要识别的资源应该通过URL路径进行标示,而不是通过查询参数,相比来说少了参数解析,性能要高
    @RequestMapping(value="/{spittleId}", method=RequestMethod.GET) public String spittle(@PathVariable("spittleId") long spittleId, Model model) { //**** }

    2

    2.1 导向

    • redirect:重定向规则
    • forward:前往指定URL,而不是重定向

    2.2 校验

    Spring对java的校验支持:Java Validation API, JSR-303

    • javax.validation.constraints

    @AssertFalse:必须是Boolean:false @AssertTrue:Boolean:true @DecimalMax:数字,小于等于给定BigDecimalString @DecimalMin:数字,大于等于给定的BigDecimalString值 @Digits:数字,指定的位数 @Futrue:将来的日期 @Max:数字,小于等于该值 @Min:数字,大于等于该值 @NotNull:不能为null @Null:必须为null @Past:已过去的日期 @Pattern:正则表达 @Size:String/集合/数组:长度符合范围

    • 应用校验:public String processRegist(@Valid User user,Errors errors){ //errors.hasErrors()判读是否出错 }
      errors参数紧跟@Valid注解的参数后面

    相关文章

      网友评论

          本文标题:Day04:开始编写Web程序

          本文链接:https://www.haomeiwen.com/subject/ehmzkxtx.html