使用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处理,甚至数据库访问和数据操作等常见的问题。
区域 | 子函数 | 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标签
- 创建一个字符串和一个引用该字符串的有界变量
- 创建一个引用现存有对象的有界变量
- 设置有界对象的属性
属性 | 类型 | 描述 |
---|---|---|
value+ | 对象 | 要创建的字符串,或者要引用的有界对象,或者新的属性值 |
var |
字符串 | 要创建的有界变量 |
scope | 字符串 | 新创建的有界变量的范围 |
target+ | 对象 | 其属性要被赋新值得有界对象;这必须是一个JavaBean实例或者java.util.Map对象 |
property+ | 字符串 | 要被赋新值得属性名称 |
remove标签
remove标签用于删除有界变量
if标签
if标签是对某一个条件进行测试,假如结果为True,就处理它的body content。
属性 | 类型 | 描述 |
---|---|---|
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。
属性 | 类型 | 描述 |
---|---|---|
var | 字符串 | 引用遍历的当前项目的有界变量名称 |
items+ | 支持的任意类型 | 遍历的对象集合 |
varStatus | 字符串 | 保持遍历状态的有界变量名称。类型值为javax.servlet.jsp.jstl.core.LoopTagStatus |
begin+ | 整数 | 如果指定items,遍历将从指定索引处的项开始,例如,集合中第一项的索引为0,。如果没有指定items,遍历将从设定的索引值开始。如果指定,begin的值必须大于或者等于0 |
end+ | 整数 | 如果指定items,遍历将在(含)指定索引处的项结束。如果没有指定items,遍历将在索引到达指定时结束 |
step+ | 整数 | 遍历将只处理间隔指定step的项目,从第一项开始。在这种情况下,step的值必须大于或者等于1 |
forTokens标签
forTokens标签用于遍历以特定分隔符隔开的令牌
属性 | 类型 | 描述 |
---|---|---|
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用于格式化数字。
属性 | 类型 | 描述 |
---|---|---|
value+ | 字符串或者数字 | 要格式化的数值 |
type+ | 字符串 | 说明该值是要被格式化成数字、货币,还是百分比。这个属性值如下:number、currency和percent |
pattern+ | 字符串 | 定制格式化样式 |
currencyCode+ | 字符串 | ISO 4217码 |
currencySymbol+ | 字符串 | 货币符号 |
groupingUsed+ | 波尔 | 说明输出结果中是否包含组分隔符 |
maxIntegerDigits+ | 整数 | 规定输出结果的整数部分最多几位数字 |
minINtegerDigits+ | 整数 | 规定输出结果的整数部分最少几位数字 |
maxFractionDigits+ | 整数 | 规定输出结果的小数部分最多几位数字 |
minFractionDigits+ | 整数 | 规定输出结果的小数部分最少几位数字 |
var | 字符串 | 将输出结果存为字符串的有界变量名称 |
scope | 字符串 | var的范围。如果有scope属性,则必须指定var属性 |
币别 | ISO4217码 | 大单位名称 | 小单位名称 |
---|---|---|---|
加拿大元 | CAD | 加元 | 分 |
人民币 | CNY | 云 | 角 |
欧元 | EUR | 欧元 | 分 |
日元 | JPY | 日元 | 钱 |
英镑 | GBP | 英镑 | 便士 |
美元 | USD | 美元 | 美分 |
formatDate标签
formatData标签用于格式化日期
属性 | 类型 | 描述 |
---|---|---|
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标签用于将制定时区保存在一个有界变量或者时间配置变量中
属性 | 类型 | 描述 |
---|---|---|
value+ | 字符串或java.util.TimeZone | 时区 |
var |
字符串 | 保存类型为java.util.TimeZone的时区的有界变量 |
scope | 字符串 | var的范围或者时区配置变量 |
parseNumber标签
paraseNumber标签用于将以字符串表示的数字、货币或者百分比解析成数字。
属性 | 类型 | 描述 |
---|---|---|
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 汉语
国家 | 代码 |
---|---|
澳大利亚 | AU |
巴西 | BR |
加拿大 | CA |
中国 | CN |
埃及 | EG |
法国 | FR |
德国 | DE |
印度 | IN |
墨西哥 | MX |
瑞士 | CH |
英国 | GB |
美国 | US |
属性 | 描述 |
---|---|
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(文件下载)对话框中。它通常与文件同名,但是也并非一定如此。