SpringMVC对JSP的支持---Spring的JSP标签库---Spring通用标签库

1. Spring通用标签库 JSP的标签库 除了JSTL(JSP 标准标签库),Spring提供了两个标签库 用来帮助定义Spring MVC Web的视图。  Spring的 表单绑定 JSP标签库Spring通用标签库

     PS:JSTL 和 Spring的JSP标签库 互为补充或者互为替代吧。都是为了JSP添加功能

2.要使用Spring通用标签库 在页面上声明如下

<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>

3.通用标签库包含的10个JSP标签

    <s:bind>  <s:escapeBody>  <s:hasBindErrors> <s:htmlEscape> <s:message>标签

    <s:nestedPath>  <s:theme>  <s:escapeBody>标签  <s:transform>  <s:eval>

4.<s:message>标签 展现国际化信息

    它可以解决的问题是:1.将JSP中硬编码的信息抽取到了属性文件中,一站式地修改应用中的所有文本信息 2.根据用户的语言设置国际化这些文本

    1.<s:message>标签将JSP中硬编码的信息抽取到了属性文件中,一站式地修改应用中的所有信息: 原来如果要修改首页中的欢迎信息,<h1>welcom you</h1>  需要打开home.jsp 对其修改。但是应用中的文本散步到多个模板,如果大规模修改应用信息,需要修改大量的JSP文件。现在只要修改属性所属的属性文件即可。   

     步骤1:配置信息源 

        Spring有多个信息源的类,它们都实现了MessageSource接口。常用的有ResourceBundleMessageSource和ReloadableResourceBundleMessageSource。它们会从一个属性文件中加载信息

        ResourceBundleMessageSource 在类路径的属性文件中解析信息 basename属性。如果要重新加载信息属性,需要重新编译或重启应用

        ReloadableResourceBundleMessageSource。它的basename属性可以设置为在类路径下(以“classpath:”作为前缀)、文件系统中(以“file:”作为前缀)或Web应用的根路径下。它能够重新加载信息属性,而不必重新编译或重启应用
(没有前缀)查找属性

        JavaConfig中配置ResourceBundleMessageSource类

@Bean
public MessageSource messageSource() {
	ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
	messageSource.setBasename("messages");
	return messageSource;
}

     JavaConfig中配置ReloadableResourceBundleMessageSource类

@Bean
public MessageSource messageSource() {
  ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
  messageSource.setBasename("message");
  messageSource.setCacheSeconds(10);
  return messageSource;
}

     步骤2:创建属性文件

          在类路径下 (Project\target\classes) 创建属性文件message.properties,内容如下

spittr.welcome = welcome you stranger

      步骤3:在jsp文件中使用属性  <s:message>将会根据key为spittr.welcome的信息源来渲染文本

<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>
<html>
<body>
<h2><s:message code="spittr.welcome"/></h2>
</body>
</html>

  2.<s:message>标签 根据用户的语言设置国际化这些文本   比如为语言设置为中文的用户展现中文的欢迎信息   存疑????

5.<s:url>标签  创建URL 

   具体待补充  参考 Spring实战(第4版)书

6.<s:escapeBody>标签 转义内容

     首先要了解一下,在HTML中,某些字符是预留的,比如<>。如果在html代码中写<h1>Hello</h1> ,浏览器会把它渲染成一级标题并显示 Hello。如果想在浏览器中显示<h1>Hello</h1> ,也就是让浏览器正常显示<>,需要使用<>的转义字符&lt,&gt。但是<s:escapeBody>标签中 可以直接写<> 并且在浏览器中显示<>。以下代码功能是等同的。浏览器中会显示二级标题 <h2>

<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>
<html>
<body>
<h2><s:message code="spittr.welcome1"/></h2>
	<!--使用<s:escapeBody>标签-->
	<h2> <s:escapeBody htmlEscape="true"><h2></s:escapeBody> </h2>
	<!--手动写转义字符,可读性差-->
	<h2>&lt;h2&gt</h2>	
</body>
</html>

 

posted on 2019-04-23 14:50  dreamstar  阅读(369)  评论(0编辑  收藏  举报