中了。
<sf:form method="POST" commandName="spitter" >
<sf:errors path="*" element="div" cssClass="errors" />
<sf:label path="firstName"
cssErrorClass="error">First Name</sf:label>:
<sf:input path="firstName" cssErrorClass="error" /><br/>
<sf:label path="lastName"
cssErrorClass="error">Last Name</sf:label>:
<sf:input path="lastName" cssErrorClass="error" /><br/>
<sf:label path="email"
cssErrorClass="error">Email</sf:label>:
<sf:input path="email" cssErrorClass="error" /><br/>
<sf:label path="username"
cssErrorClass="error">Username</sf:label>:
<sf:input path="username" cssErrorClass="error" /><br/>
<sf:label path="password"
cssErrorClass="error">Password</sf:label>:
<sf:password path="password" cssErrorClass="error" /><br/>
<input type="submit" value="Register" />
</sf:form>
sf:label
标签 像其他的表单绑定标签一样,使用path来指定它属于模型对象中哪个属性,假设没有校验错误的话,它将会渲染为HTML
省略...具体的内容请看书,
@NotNull
@Size(min=5, max=16, message="{username.size}")
private String username;
.......
@NotNull
@Size(min=2, max=30, message="{lastName.size}")
private String lastName;
我们将其@Size注解的 message设置为一个字符串。大括号括起来的。没有没有大括号的话,message中的值将会作为展现给用户的错误信息,使用了就用文件中某个一个属性,该属性包含了实际的信息。
创建一个ValidationMessages.properties的文件,并将其放到根路径之下。
firstName.size=First name must be between {min} and {max} characters long.
lastName.size=Last name must be between {min} and {max} characters long.
username.size=Username must be between {min} and {max} characters long.
password.size=Password must be between {min} and {max} characters long.
email.valid=The email address must be valid.
将这些错误信息抽取到属性文件中还会带来一个好处,那就是我们可以通过创建地域文件相关的属性文件,为用户展现特定语言和地域的信息。
** Spring通用的标签库 **
要使用Spirng通用的标签库,需要在页面首页对其进行声明
<%@ taglib uri="http://www.springframework.org.tags" prefix='s'%>
也可以任意,声明之后可以使用如下JSP标签:
-
<s:bind> :将绑定的属性导出到一个名为status的页面作用域中,与<s:path>组合使用获取绑定的属性
-
<s:escapeBody>:将标签中的内容进行HTML和JavaScrop转义
-
<s:message>:根基给定的编码获取信息,然后进行渲染,要么将其设置为页面作用域、请求、会话作用域或应用作用域的变量
-
<s:theme>:根据给定的编码获取主题信息,然后要么进行渲染。。。。
-
<s:transform>:使用命令对象的属性便阿基器转换命令对象中不包含的属性
-
<s:url>:创建相对于上下文的URL
-
<s:eval>:计算符合Spring表达式语言语法的某个表达式的值,然后进行渲染,要么。。。。
-
<s:param>:
展现国际化信息
Web是全球性和网络,你所构建的应用很可能会有全球化用户。
我们可以把文本放到一个或多个属性文件中。借助<s:message>.
<h1><s:message code="spittr.welcome"/></h1>
按照这里的方式,<s:message>将会根据key为spittr。welcome的信息源来渲染文本。需要完成任务,还需要配置这样一个信息源。
Spring 中有多个信息源的类,它们都实现了
MessageSource
接口,更为常见的是
ResourceBundleMessageSource
.他从一个文件中加载信息,这个属性文件的名称是根据基础名称衍生而来的。如下@Bean方法配置类
ResourceBundleMessageSource
@Bean
public MessageSource messageSource () {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("messages");
messageSource.setCacheSeconds(10);
return messageSource;
}
spitter.welcome=Welcome to Spitter!
在这个Bean声明中,核心在basename属性,将其设置为messages后,
ResourceBundle-MessageSource
就会视图在类路径的属性文件中解析信息,