SpringMVC学习指南(标签、注解等)

使用SpringMVC配置文件

web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    http://xmlns.org/xml/ns/javaee/web-app_3_1.xsd">

    <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/config/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>

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean name="" class=""/>
    <bean id="viewResolver" class="org.springframework.web.servlet.view.IntenalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

SpringMVC注解类型

Controller注解类型

org.springframework.stereotype.Controller注解类型用于指示Spring类的实例是一个控制器。

Spring使用扫描机制来找到应用程序中所有基于注解的控制器类。

1.在SpringMVC配置文件中声明spring-context

<beans
    ……
    xmlns:context="httpL//www.springframework.org/schema/context"
    ……
/>

2.应用<component-scan/>元素,basePackage为控制器类包

<context:compont-scan base-package="basePackage"/>

3.确保所有控制类都在basePackage包下

RequestMapping注解类型

org.springframework.web.bin.annotation.RequestMapping注解类型映射的URI和方法。

采用@RequestMapping注解的方法将成为一个请求处理方法,并由调度程序在接受到对应URL请求时调度。

使用RequestMapping注解的value属性将URI映射到方法,由于value属性是RequestMapping注解的默认属性,因此,若只有唯一的属性,则可以省略属性名称。现在更多的会使用新的GetMapping、PostMapping等注解,高效,整洁。

使用RequestMapping注解的method属性用来指示该方法仅处理哪些HTTP方法

Autowired注解类型

org.springframework.beans.factory,annotation注解依赖注入对象。

使用Spring框架的一个好处是容易进行依赖注入,将依赖注入到SpringMVC控制器的最简单方法是通过注解@Autowired到字段或方法。

1.类必须要注明为@Service

2.在配置文件中,添加一个<component-scan/>元素来扫描依赖的基本包

<context:component-scan base-package="dependencyPackage"/>

ModelAttribute注解类型

org.springframework.web.bind.annotation注解类型访问Model实例。

用@ModelAttribute来注解方法参数或方法。带@ModelAttribte注解的方法会将其输入的货创建的参数对象添加到Model对象中。

@ModelAttribute的第二个用途是标注一个非请求的处理方法。被@Attribute注解的方法会在每次调用该控制器类的请求方法时被调用。这意味着,如果一个控制器类有两个请求处理方法,以及一个有@ModelAttribute注解的方法,该方法的调用次数就会比每个处理请求方法更频繁。

表单标签库

表单标签库中的标签

标签 描述 form 渲染表单元素 input 渲染<input type="text"/>元素 password 渲染<input type="password"/>元素 hidden 渲染<input type="hidden"/>元素 textarea 渲染textarea元素 checkbox 渲染一个<input type="checkbox"/>元素 checkboxs 渲染多个<input type="checkbox"/>元素 radiobutton 渲染一个<input type="radiobutton"/>元素 radiobuttons 渲染多个<input type="radiobutton"/>元素 select 渲染一个选择元素 option 渲染多个可选元素 options 渲染一个可选元素列表 errors 在span元素中渲染字段错误

表单标签属性

属性 描述

acceptCharset

定义服务其接受的字符编码列表 commandName 暴露表单对象之模型属性的名称,默认为command cssClass 定义要应用到被渲染form元素的CSS类 cssStyle 定义要应用到被渲染form元素的CSS样式 htmlEscape 接受true或者false,表示被渲染的值时候应该进行HTML转义 modelAttribute 暴露表单支持对象的模型属性名称,默认为command

input标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性值 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 path 要绑定的属性路径

password标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性值 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 path 要绑定的属性路径 showpassword 表示应该显示或遮盖密码,默认值为false

hidden标签

属性 描述 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 path 要绑定的属性路径

textarea标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性值 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 path 要绑定的属性路径

checkbox标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性值 label 要作为标签用于被渲染复选框的值 path 要绑定的属性路径

radiobutton标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性值 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 label 要作为标签用于被渲染复选框的值 path 要绑定的属性路径

checkboxes标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性 delimiter 定义两个input元素之间的分隔符,默认没有分隔符 element 给每个被渲染的input元素都定义一个HTML元素,默认为"span" htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 items 用于生input元素的对象的Collection、Map或者Array itemLabel item属性中定义的Collection、Map或者Array中的对象属性,为每个input元素提供标签 itemValue item属性中定义的Collection、Map或者Array中的对象属性,为每个input元素提供值 path 要绑定的属性路径

radiobuttons标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性 delimiter 定义两个input元素之间的分隔符,默认没有分隔符 element 给每个被渲染的input元素都定义一个HTML元素,默认为"span" htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 items 用于生input元素的对象的Collection、Map或者Array itemLabel item属性中定义的Collection、Map或者Array中的对象属性,为每个input元素提供标签 itemValue item属性中定义的Collection、Map或者Array中的对象属性,为每个input元素提供值 path

要绑定的属性路径

select标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 items 用于生input元素的对象的Collection、Map或者Array itemLabel item属性中定义的Collection、Map或者Array中的对象属性,为每个input元素提供标签 itemValue item属性中定义的Collection、Map或者Array中的对象属性,为每个input元素提供值 path 要绑定的属性路径

option标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义

options标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 cssErrorClass 定义要应用到被渲染input元素的CSS类,如果bound属性中包含错误,则覆盖cssClass属性 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 items 用于生input元素的对象的Collection、Map或者Array itemLabel item属性中定义的Collection、Map或者Array中的对象属性,为每个input元素提供标签 itemValue item属性中定义的Collection、Map或者Array中的对象属性,为每个input元素提供值

errors标签

属性 描述 cssClass 定义要应用到被渲染input元素的CSS类 cssStyle 定义哟应用到被渲染input元素的CSS样式 Delimiter 分隔多个错误消息的分隔符 element 定义一个包含错误消息的HTML元素 htmlEscape 接受true或者false,表示是否应该对被渲染的值进行HTML转义 path 要绑定的属性路径

转换器

Spring的Converter是可以将一种类型转换成另一种类型的一个对象。

1.为了创建Converter,必须编写实现org.springframework.core.convert.converter.Converter接口的一个Java类。

2.在SpringMVC配置文件中编写一个名为conversionService的bean,bean的类名必须为org.springframework.context.support.ConversionServiceFactoryBean,这个bean必须包含一个converters属性,它将列出要在应用程序中使用的所有定制Converter。

<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <list>
            <bean class="converter.StringToLocalDateConverter">
                <constructor-arg type="java.lang.String" value="MM-dd-yyyy"/>
            </bean>
        </list>
    </property>
</bean>

3. 给annotation-driven元素的conversion-service属性赋值bean名称

<mvc:annotation-driven conversion-service="conversionService"/>

格式化

Formatter就像Converter一样,也是将一种类型转换成另一种类型。但是,Formatter的源类型必须是一个String,而Converter则适用于任意的源类型。Formatter更适合Web层,而Converter则可以用在任意层中。

1.为了创建Formatter,要编写一个实现org.springframework.format.Formatter接口的Java类

parse方法利用指定的Locale将一个String解析成目标类型。

print方法与返回目标对象的字符串表示法。

2.在SpringMVC配置文件中编写一个名为conversionService的bean,bean的类名必须为org.springframework.context.support.FormattingConversionServiceFactoryBean。

<bean id="conversionService" class="org.springframework.context.support.FormattingConversionServiceFactoryBean">
    <property name="formatters">
        <set>
            <bean class="formatter.LocalDateFormatter">
                <constructor-arg type="java.lang.String" value="MM-dd-yyyy"/>
            </bean>
        </set>
    </property>
</bean>

3. 给annotation-driven元素的conversion-service属性赋值bean名称

<mvc:annotation-driven conversion-service="conversionService"/>

验证器(Validation框架)

1.为了创建Spring验证器,要实现org.springframework.validation.Validator接口,这个接口有supports和validate两个方法。

public interface Validator{
    boolean supports(Class<?> clazz);
    void validate(Object target,Errors errors);
}

如果验证器可以处理指定的Class,supports方法将返回true。validate方法会验证目标对象,并将验证错误填入Error对象。

2.在Springmvc中配置bean

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="/WEB-INF/resource/message"/>
</bean>

JSR303验证

JSR303"Bean Validation"(发布于2009年11月)和JSR349"Bean Validation1.1"(发布于2013年5月)指定了一整套API,通过注解给对象属性添加约束。

当然JSR只是一个规范文档,本身用处不大,除非编写他的实现。

JSR303约束

属性 描述 @AssertFalse 应用于boolean属性,该属性值必须为False @AssertTrue 应用于boolean属性,该属性值必须为True @DecimalMax 该属性值必须为小于或等于指定值的小数 @DecimalMin 该属性值必须为大于或等于指定值的小数 @Digits 该属性值必须在指定范围内。integer属性定义该数值的最大整数部分,fraction属性定义该数值的最大小数部分 @Future 该属性值必须是未来的一个日期 @Max 该属性值必须是一个小于或等于指定值的整数 @Min 该属性值必须是一个大于或等于指定值的整数 @NotNull 该属性不能为NULL @Null 该属性值必须为NULL @Past 该属性值必须是过去的一个日期 @Pattern 该属性值必须与指定的常规表达式相匹配 @Size 该属性必须在指定范围内

表达式语言

EL表达式以${开头,并以}结束。

EL表达式可以返回任意类型的值。如果EL表达式的结果是一个带有属性的对象,则可以利用[]或者.运算符来访问该属性。

EL隐式对象

对象 描述

pageContext

这是当前JSP的javax.servlet.jsp.PageContext initParam 这是一个包含所有环境初始化参数并用参数名作为key的Map param

这是一个包含所有请求参数并用参数名作为key的Map。每个key的值就是指定名称的第一个参数值。因此,如果两个请求参数同名,则只有第一个能够利用param获取值。要想访问同名参数的所有参数值,可用params代替

paramValues 这是一个包含所有请求参数并用参数名作为key的Map。每个key的值就是一个字符串数组,其中包含了指定参数名称的所有参数值。就算该参数只有一个值,它仍然会返回一个带有一个元素的数组 header 这是一个包含请求标题并用标题名作为key的Map。每个key的值就是制定标题名称的第一个标题。换句话说,如果一个标题的值不止一个,则只返回第一个值。要想获得多个值的标题,得用headerValues对象代替 headerValues 这是一个包含请求标题并用标题名作为key的Map。每个key的值就是一个字符串数组,其中包含了指定标题名称的所有参数值。就算该标题只有一个值,它也仍然会返回一个带有一个元素的数组 cookie 这是一个包含了当前请求对象中所有Cookie对象的Map。Cookie名称就是key名称,并且每个key都映射到一个Cookie对象

applicationScope

这是一个包含了ServletContext对象中所有属性的Map,并用属性名称作为key sessionScope 这是一个包含了HttpSession对象中所有属性的Map,并用属性名称作为key requestScope 这是一个Map,其中包含了当前HttpServletReqeust对象中的所有属性,并用属性名称作为key pageScope

这是一个Map,其中包含了全页面范围内的所有属性。属性名称就是Map的key

pageContext

对象 EL中的类型 request javax.servlet.http.HttpServletReqeust response javax.servlet.http.HttpServletResponse out javax.servlet.jsp.JspWriter session javax.servlet.http.HttpSession application javax.servlet.ServletContext config javax.servlet.ServletConfig PageContext javax.servlet.jsp.PageContext page javax.servlet.jsp.HttpJspPage exception javax.servlet.Throwable

pageContext.request中一些有用的属性

属性 说明 characterEncoding 请求的字符编码 contentType 请求的MIME类型 locale 浏览器首先locale locales 所有locale protocol HTTP协议 remoteAddr 客户端IP地址 remoteHost 客户端IP地址或主机名 scheme 请求发送方案 serverName 服务器主机名 serverPort 服务器端口 secure 请求是否通过安全链接传输

集合操作

toList:toList()方法返回一个List,它包含与当前流相同的成员。调用次方法的主要目的是轻松地打印或操作流元素

toArray:与toList类似,但返回一个Java数组。同样,在数组中呈现袁术通常是有用的,因为许多Java方法将数组作为参数

limit:limit方法限制流中元素的数量

sort:此方法对流中的元素进行排序

average:此方法返回流中所有元素的平均值。其返回值是一个Optional对象,它可能为null。需要调用get()获取实际值

sum:此方法计算流中所有元素的总和

count:此方法返回流中元素的数量

min:此方法返回流的元素中的最小值。同average方法一样,其返回值是一个Optional对象,因此你需要调用get方法来获取实际值

max:此方法返回流的元素中的最大值。同average方法一样,其返回值是一个Optional对象,因此你需要调用get方法来获取实际值

map:此方法将流中的每个元素映射到另一个流中的另一个元素,并返回该流。此方法接受一个lambda表达式

filter:此方法根据lambda表达式过滤流中的所有元素,并返回包含结果的新流

forEach:此方法对流中的所有元素执行操作。它返回void

JSTL

JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个订制标签库的集合,用来解决像遍历Map或集合、条件测试、XML处理,甚至数据库访问和数据操作等常见的问题。

JSTL标签库
区域 子函数 URI 前缀
核心 变量支持 http://java.sun.com/jsp/jstl/core C
流控制
URL管理
其他
XML 核心 http://java.sun.com/jsp/jstl/xml X
流控制
转换
国际化 语言区域 http://java.sun.com/jsp/jstl/fmt fmt
消息区域化
数字和日期格式化
数据库 SQL http://java.sun.com/jsp/jstl/sql sql
函数 集合长度 http://java.sun.com/jsp/jstl/functions fn
字符串操作

如果需要使用标签的话需要现在JSP页面的开头处做说明

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

前缀可以是任意的,但是采用惯例能使团队的其他开发人员以及后续加入该项目的其他人员更容易熟悉这些代码。

out标签

out标签是将结果输出到当前的JspWriter

out标签的属性

属性 类型 描述 value*+ 对象 要计算的表达式 escapeXml+ 布尔 表示结果中的字符<、>、&、'和'将被转换成相应的实体码 default+ 对象 默认值

url标签

  • 如果上下文路径为"/"(即应用程序不熟为默认上下文),则它将空字符串附加到指定的路径
  • 如果当前上下文路径不是"/",它会将上下文路径添加到指定的路径

set标签

  1. 创建一个字符串和一个引用该字符串的有界变量
  2. 创建一个引用现存有对象的有界变量
  3. 设置有界对象的属性
set标签的属性
属性 类型 描述
value+ 对象 要创建的字符串,或者要引用的有界对象,或者新的属性值

var

字符串 要创建的有界变量
scope 字符串 新创建的有界变量的范围
target+ 对象

其属性要被赋新值得有界对象;这必须是一个JavaBean实例或者java.util.Map对象

property+ 字符串 要被赋新值得属性名称

remove标签

remove标签用于删除有界变量

if标签

if标签是对某一个条件进行测试,假如结果为True,就处理它的body content。

if标签的属性
属性 类型 描述
test+ 布尔 决定是否处理任何现有body content的测试条件
var 字符串 引用测试条件值得有界变量名称;var的类型为Boolean
scope 字符串 var定义的有界变量的范围

choose、when和otherwise标签

choose和when标签的作用于Java中的关键字switch和case类似。也就是说,它们是用于为相互排斥的条件执行提供上下文的。choose标签中必须嵌有一个或者多个when标签,并且每个when标签都表示一种可以计算和处理的情况。otherwise标签则用于默认的条件块,假如没有任何一个when标签的测试条件结果为True,otherwise就会得到处理。假如是这种情况,otherwise就必须放在最后一个when之后。

choose和otherwise标签没有属性。when标签必须带有定义测试条件的test属性,用来决定是否应该处理body content

forEach标签

forEach标签会无数次地反复便利body content 或者对象集合。可以遍历的对象包括java.util.Collection和java.util.Map的所有实现,以及对象数组或者基本类型。也可以遍历java.util.Iterator和java.util.Enumeration,但不应该在多个行为中使用Iterator或者Enumeration。

forEach标签的属性
属性 类型 描述
var 字符串 引用遍历的当前项目的有界变量名称
items+ 支持的任意类型 遍历的对象集合
varStatus 字符串 保持遍历状态的有界变量名称。类型值为javax.servlet.jsp.jstl.core.LoopTagStatus
begin+ 整数 如果指定items,遍历将从指定索引处的项开始,例如,集合中第一项的索引为0,。如果没有指定items,遍历将从设定的索引值开始。如果指定,begin的值必须大于或者等于0
end+ 整数 如果指定items,遍历将在(含)指定索引处的项结束。如果没有指定items,遍历将在索引到达指定时结束
step+ 整数 遍历将只处理间隔指定step的项目,从第一项开始。在这种情况下,step的值必须大于或者等于1

 forTokens标签

forTokens标签用于遍历以特定分隔符隔开的令牌

f orTokens标签的属性
属性 类型 描述
var 字符串 引用遍历的当前项目的有界变量名称
items+ 支持的任意类型 要遍历的token字符串
varStatus 字符串 保存遍历状态的有界变量名称。类型值为javax.servlet.jsp.jstl.core.LoopTagStatus
begin+ 整数 遍历的起始索引,此处索引是从0开始的。如有指定,begin的值必须大于或者等于0
end+ 整数 遍历的终止索引,此处索引是从0开始的
step+ 整数 遍历将以step指定的间隔的token来处理字符串,从第一个token开始。如有指定,step的值必须大于或者等于1
delims+ 字符串 一组分隔符

formatNumber标签

formatNumber用于格式化数字。

formatNumber标签的属性
属性 类型 描述
value+ 字符串或者数字 要格式化的数值
type+ 字符串 说明该值是要被格式化成数字、货币,还是百分比。这个属性值如下:number、currency和percent
pattern+ 字符串 定制格式化样式
currencyCode+ 字符串 ISO 4217码
currencySymbol+ 字符串 货币符号
groupingUsed+ 波尔 说明输出结果中是否包含组分隔符
maxIntegerDigits+ 整数 规定输出结果的整数部分最多几位数字
minINtegerDigits+ 整数 规定输出结果的整数部分最少几位数字
maxFractionDigits+ 整数 规定输出结果的小数部分最多几位数字
minFractionDigits+ 整数 规定输出结果的小数部分最少几位数字
var 字符串 将输出结果存为字符串的有界变量名称
scope 字符串 var的范围。如果有scope属性,则必须指定var属性
部分ISO 4217货币代码
币别 ISO4217码 大单位名称 小单位名称
加拿大元 CAD 加元
人民币 CNY
欧元 EUR 欧元
日元 JPY 日元
英镑 GBP 英镑 便士
美元 USD 美元 美分

formatDate标签

 formatData标签用于格式化日期

formatDate标签的属性
属性 类型 描述
value+

java.util.Date

要格式化的日期和/或时间
type+ 字符串 说明要格式化的是时间、日期,还是时间与日期部分都格式化

dataStyle+

字符串 预定义日期的格式化样式,遵循java.text.DateFormat中定义的语义
timeStyle+ 字符串 预定义时间的格式化样式,遵循java.text.DateFormat中定义的语义
pattern+ 字符串 定制格式化样式
timezone+ 字符串或java.util.TimeZone 定义用于演示时间的时区
var 字符串 将输出结果存储到字符串的有界变量名称
scope 字符串 var的范围

timeZone标签

timeZone标签用于时区,使其body content中的时间信息指定时区进行格式化或者解析

美国和加拿大时区的值
缩写 全名 时区
NST 纽芬兰标准时间 UTC-3::30
NDT 纽芬兰夏时制 UTC-2:30
AST 大西洋标准时间 UTC-4
ADT 大西洋夏时制 UTC-3
EST 东部标准时间 UTC-5
EDT 东部夏时制 UTC-4
ET 东部时间,如EST或EDT *
CST 中部标准时间 UTC-6
CDT 中部夏时制 UTC-5
CT 中部时间,如CST或CDT *
MST 山地标准时间 UTC-7
MDT 山地夏时制 UTC-6
MT

山地时间,如MST和MDT

*
PST 太平洋标准时间 UTC-8
PDT 太平洋夏时制 UTC-7
PT 太平洋时间,如PST和PDT *
AKST 阿拉斯加标准时间 UTC-9
AKDT 阿拉斯加夏时制 UTC-9
HST 夏威夷标准时间 UTC-10

setTimeZone

setTimeZone标签用于将制定时区保存在一个有界变量或者时间配置变量中

setTimeZone标签的属性
属性 类型 描述
value+ 字符串或java.util.TimeZone 时区

var

字符串 保存类型为java.util.TimeZone的时区的有界变量
scope 字符串

var的范围或者时区配置变量

parseNumber标签

paraseNumber标签用于将以字符串表示的数字、货币或者百分比解析成数字。

parseNumber标签的属性
属性 类型 描述
value+ 字符串或数字 要解析的字符串
type+ 字符串 说明该字符串是要解析成数字、货币,还是百分比
pattern+ 字符串 定制格式化样式,决定value属性中的字符串要如何解析
parseLocale+

字符串或java.util.Locale

定义locale,在解析操作期间将其默认格式化样式或将pattern属性定义的样式应用其中
integerOnly+ 布尔 说明是否只解析指定值得整数部分
var 字符串 保存输出结果的有界变量名称
scope 字符串 var的范围

parseDate标签的属性

parseDate标签的属性

属性 类型 描述 value+ 字符串 要解析的字符串 type+ 字符串 说明要解析的字符串中是否包含日期、时间或二者均有 dateStyle+ 字符串 日期的格式化样式 timeStyle+ 字符串 时间的格式化样式 pattern+ 字符串 定制格式化样式,决定要如何解析该字符串 timeZone+ 字符串或者java,util.TimeZone 定义时区,使日期字符串中的时间信息均根据它来解析 parseLocale+ 字符串或者java.util.Locale 定义locale,在解析操作期间用其默认格式化样式,或将pattern属性定义的样式应用其中 var 字符串 保存输出结果的有界变量名称 scope 字符串 var的范围

函数

contains函数:用于测试一个字符串中是否包含指定子字符串。如果字符串中包含该子字符串,则返回值为True,否则,返回False。

containslgnoreCase函数:与contains函数相似,但测试时区分大小写

endsWith函数:用于测试一个字符串是否以指定的后缀结尾

escapeXml函数:用于给String编码。这种转换与out标签将其escapeXml属性设为True一样

indexOf函数:返回指定子字符串在某个字符串中第一次出现时的索引。如果没有找到指定的子字符串

join函数:将一个String数组中的所有元素都合并成一个字符串,并用指定的分隔符分开

length函数:用于返回集合中的项数,或者字符串中的字符数

replace函数:将字符串中出现的所有beforeString都用afterString替换,并返回结果

split函数:用于将一个字符串分割成一个子字符串数组。它的作用于join相反

startWith函数:用于测试一个字符串是否以指定的前缀开头

substring函数:用于返回一个从指定基于0的起始索引(含)到指定基于0的终止索引的子字符串

substringAfter函数:用于返回指定子字符串第一次出现后的字符串部分

substringBefore函数:用于返回指定子字符串第一次出现前的字符串部分

toLowerCase函数:将一个字符串转换成它的小写版本

toUpperCase函数:将一个字符串转换成它的大写版本

trim函数:用于删除一个字符串开头和结尾的空白

国际化

国际化,常常缩写时i18n,因为其单词internationalization以i开头,以n结尾。

本地化,将国际化应用程序改成支持特定语言区域(locale)的技术。

语言区域

Java.util.Locale类表示一个语言区域。一个Locale对象包含3个主要元件:language、country和variant。

ISO639语言码范例

代码 语言 de 德语 el 希腊语 en 英语 es 西班牙语 fr 法语 hi 印地语 it 意大利语 ja 日语 nl 荷兰语 pt 葡萄牙语 ru 俄语 zh 汉语

IOS3166国家码范例
国家 代码
澳大利亚 AU
巴西 BR
加拿大 CA
中国 CN
埃及 EG
法国 FR
德国 DE
印度 IN
墨西哥 MX
瑞士 CH
英国 GB
美国 US
使用message标签
属性 描述
arguments 该标签的参数写成一个有界的字符串、一个对象数组或者单个对象
argumentSeparator 用来分隔该标签参数的字符
code 获取消息的key
htmlEscape 接受True或者False,表示被渲染文本是否应该进行HTML转义
javaScriptEscape 接受True或者False,表示被渲染文本是否应该进行JavaScript转义
message MessageSourceResolvable参数
scope 保存var属性中定义的变量的范围
text 如果code属性不存在,或者指定码无法获取消息,所显示的默认文本
var 用于保存消息的有界变量

上传文件

将HTML表格的enctype属性值设置为multipart/form-data

Commons FileUpload上传文件

1.导入两个jar包即commons-fileupload-x.y.jar,common-io-x.y.jar

maven依赖

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>

2.在SpringMVC配置文件定义multipartResolver bean

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="2000000"/>
</bean>

 Servlet3及更高版本上传文件

Servlet必须以@MultipartConfig进行注解

在MultipartConfig注解类型中出现的属性,它们都是可选的。

  • maxFileSize:上传文件的最大容量,默认值为-1,表示没有限制。大于指定值的文件将会遭到拒绝
  • maxRequestSize:表示多部分HTTP请求允许的最大容量,默认值为-1,表示没有限制
  • location:表示在Part调用write方法时,要将已上传的文件保存到磁盘中的位置
  • fileSizeThreshold:上传文件超出这个容量界限时,会被写入磁盘

1.在web.xml配置servlet上传

<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/config/springmvc-config.xml</param-value>
    </init-param>
    <multipart-config>
        <max-file-size>20848820</max-file-size>
        <max-request-size>418018841</max-request-size>
        <file-size-threshold>1048576</file-size-threshold>
    </multipart-config>
</servlet>

2.在springMVC配置文件配置

<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"></bean>

文件下载

1.对请求处理方法使用void返回类型,并在方法中添加HttpServletResponse参数。

2.将响应的内容类型设计为文件的内容类型。Content-Type标题在某个实体的body中定义数据的类型,并包含媒体类型和子类型标识符。如果不清楚内容类型,并且希望浏览器始终显示Save As(另存为)对话框,则将它设为APPLICATION/CTET-STREAM。这个值是不区分大小写的。

3.添加一个名为Content-Disposition的HTTP响应标题,并赋值attachment;filename=fileName,这里的fileName是默认文件名,应该出现在FileDownload(文件下载)对话框中。它通常与文件同名,但是也并非一定如此。

猜你喜欢

转载自blog.csdn.net/weixin_37645838/article/details/85104407