前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Spring实战》摘录 - 11

《Spring实战》摘录 - 11

作者头像
用户1335799
发布2019-05-08 18:01:23
6590
发布2019-05-08 18:01:23
举报

101

问题: #5.2.3-1 | 测试SpittleController处理针对“/spittles”的GET请求 回答:

代码语言:javascript
复制
@Test
public void shouldShowRecentSpittles() throws Exception{
     List<Spittle> expectedSpittles = createSpittleList(20);
     SpittleRepository  mockRepository = mock(SpittleRepository.class); // Mock Repository
     when(mockRepository.findSpittles(Long.MAX_VALUE,20)).thenReturn(expectedSpittles);
     SpittleController controller = new SpittleController(mockRepository);
     MockMvc mockMvc = standaloneSetup(controller).setSingleView(new InternalResourceView(“/WEB-INF/views/spittles.jsp”)).build(); //Mock Spring MVC
     mockMvc.perform(get(“/spittles”))  // 对”/spittles”发起GET请求
             .andExpect(view().name(“spittles”))
             .andExpect(model().attributeExists(“spittleList”))
             .andExpect(model().attribute(“spittleList”, hasItems(expectedSpittles.toArray())));  //断言期望的值
}
…
private List<Spittle> createSpittleList(int count){
     List<Spittle> spittles = new ArrayList<Spittles>();
     for(int i=0; i<count; i++){
         spittles.add(new Spittle(“Spittle ” + i, new Date()));
     }
     return spittles;
}

102

问题: #5.3-1 | Spring MVC允许以多种方式将客户端中的数据传送到控制器的处理器方法中,包括 回答:

  • 查询参数(Query Parameter)。
  • 表单参数(Form Parameter)。
  • 路径变量(Path Variable)。

103

问题: # 5.4-1 | 网络编程中,表单的作用 回答: 展现表单以及处理用户通过表单提交的数。

104

问题: #5.4.1-1 | 当InternalResourceViewResolver看到视图格式中的“redirect:”前缀时,InternalResourceViewResolver会知道些什么? 回答: 它就知道要将其解析为重定向的规则,而不是视图的名称。

105

问题: #5.4.1-2 | 除了“redirect:”,InternalResourceViewResolver还能识别“forward:”前缀。当它发现视图格式中以“forward:”作为前缀时,它会怎么做? 回答: 请求将会前往(forward)指定的URL路径,而不再是重定向。

106

问题: #5.4.2-1 | Java校验API所提供的校验注解 回答:

  • @AssertFalse - 所注解的元素必须是Boolean类型,并且值为false
  • @AssertTrue - 所注解的元素必须是Boolean类型,并且值为true
  • @DecimalMax - 所注解的元素必须是数字,并且它的值要小于或等于给定的BigDecimalString值
  • @DecimalMin - 所注解的元素必须是数字,并且它的值要大于或等于给定的BigDecimalString值
  • @Digits - 所注解的元素必须是数字,并且它的值必须有指定的位数
  • @Future - 所注解的元素的值必须是一个将来的日期
  • @Max - 所注解的元素必须是数字,并且它的值要小于或等于给定的值
  • @Min - 所注解的元素必须是数字,并且它的值要大于或等于给定的值
  • @NotNull - 所注解元素的值必须不能为null
  • @Null - 所注解元素的值必须为null
  • @Past - 所注解的元素的值必须是一个已过去的日期
  • @Pattern - 所注解的元素的值必须匹配给定的正则表达式
  • @Size - 所注解的元素的值必须是String、集合或数组,并且它的长度要符合给定的范围

107

问题: #6.1-1 | Spring自带了13个视图解析器,能够将逻辑视图名转换为物理实现 回答:

  • BeanNameViewResolver - 将视图解析为Spring应用上下文中的bean,其中bean的ID与视图的名字相同
  • ContentNegotiatingViewResolver - 通过考虑客户端需要的内容类型来解析视图,委托给另外一个能够产生对应内容类型的视图解析器
  • FreeMarkerViewResolver - 将视图解析为FreeMarker模板
  • InternalResourceViewResolver - 将视图解析为Web应用的内部资源(一般为JSP)
  • JasperReportsViewResolver - 将视图解析为JasperReports定义
  • ResourceBundleViewResolver - 将视图解析为资源bundle(一般为属性文件)
  • TilesViewResolver - 将视图解析为Apache Tile定义,其中tile ID与视图名称相同。注意有两个不同的TilesViewResolver实现,分别对应于Tiles 2.0和Tiles 3.0
  • UrlBasedViewResolver - 直接根据视图的名称解析视图,视图的名称会匹配一个物理视图的定义
  • VelocityLayoutViewResolver - 将视图解析为Velocity布局,从不同的Velocity模板中组合页面
  • VelocityViewResolver - 将视图解析为Velocity模板
  • XmlViewResolver - 将视图解析为特定XML文件中的bean定义。类似于BeanName-ViewResolver
  • XsltViewResolver - 将视图解析为XSLT转换后的结果

108

问题: #6.2-1 | Spring提供了两种支持JSP视图的方式: 回答:

  • InternalResourceViewResolver会将视图名解析为JSP文件。另外,如果在你的JSP页面中使用了JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)的话,InternalResourceViewResolver能够将视图名解析为JstlView形式的JSP文件,从而将JSTL本地化和资源bundle变量暴露给JSTL的格式化(formatting)和信息(message)标签。
  • Spring提供了两个JSP标签库,一个用于表单到模型的绑定,另一个提供了通用的工具类特性。

109

问题: #6.2.1-1 | InternalResourceViewResolver解析视图时,会在视图名上添加前缀和后缀,请画出相应的图

回答:

110

问题: #6.2.1-2 | 使用@Bean注解的时候,我们可以按照如下的方式配置Internal-ResourceView Resolver,使其在解析视图时,可以自动加上前后缀 回答:

代码语言:javascript
复制
@Bean
public ViewResolver viewResolver() {
  InternalResourceViewResolver resolver =
      new InternalResourceViewResolver();
  resolver.setPrefix("/WEB-INF/views/");
  resolver.setSuffix(".jsp");
  return resolver;
}

//作为替代方案,如果你更喜欢使用基于XML的Spring配置,那么可以按照如下的方式配置InternalResourceViewResolver:
<bean id="viewResolver"
      class="org.springframework.web.servlet.view.
                        InternalResourceViewResolver"
      p:prefix="/WEB-INF/views/"
      p:suffix=".jsp" />
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 怀英的自我修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档