A、Spring标签库

Web项目若使用Spring Web MVC并使用JSP作为表现的话。从Spring2.0版本开始提供一套标签库可供使用。

使用标签库无非是易于开发,维护之类云云。这里就不阐述了。我们还是更关注spring有哪些标签库和如何使用。

B、spring.tld标签库

spring.tld标签库核心类的包在org.springframework.web.servlet.tags。

B.1、spring:hasBindErrors

对应org.springframework.web.servlet.tags.BindErrorsTag标记库处理类。

这个标记提供用于绑定对象的errors,如果这个标记被用到的话,那么关于这个对象的错误将在页面上显示出来。使用这个标记的前提条件是要先使用<spring:bind>标记,并且<spring:hasBindErrors>这个标记不能用来表示对象的状态,它仅仅可以绑定对象本身和对象的属性。

举例

<spring:hasBindErrors name="priceIncrease">

<b>Please fix all errors!</b>

</spring:hasBindErrors>

属性

  name:是要被检查的Bean的名字。这个属性是必需要的。

B.2、spring:bind

对应org.springframework.web.servlet.tags.BindTag标记库处理类

  这个标记用来为某个bean或bean 的属性赋值,通常和form一起用,相当于action的作用。它指明表单要提交到那个类或类的属性中去。

  其中path属性是必须的,指明转到的类的路径。

B.3、spring:transform

  对应org.springframework.web.servlet.tags.TransformTag标记库处理类,这个标记用来转换表单中不与bean中的属性一一对应的那些属性,通常和<spring:bind>一起使用。<spring:transform>标记为<spring:bind>使用提供了更好的支持。

属性

value:必需要的。和当前<spring:bind>标记指向的bean类相同。就是你要转换的实体类名。

var:不是必需的。这个字符串被用来绑定输出结果到page,request, session或application scope.默认情况输出到jsp中。

scope:不是必需的。前提条件var必须设置的情况下。它的值可以是page,request, session或application。

B.4、spring:message

对应org.springframework.web.servlet.tags.MessageTag标记库处理类

  这个标记用来帮助springframework支持国际化。和JSTL的fmt:message标记类似。当然这个标记可以很好的工作的本地的springframework框架下。

属性

  code:不是必需的。用来查找message,如果没有被使用的话,text将被使用。

text:不是必需的。假如code不存在的话,默认是text输出。当code和text都没有设置的话,标记将输出为null.

var:不是必需的。这个字符串被用来绑定输出结果到page,request, session或application scope.默认情况输出到jsp中。

scope:不是必需的。前提条件var必须设置的情况下。它的值可以是page,request, session或application。

B.5、spring:htmlEscape

对应org.springframework.web.servlet.tags.HtmlEscapeTag标记库处理类

B.6、spring:theme

对应org.springframework.web.servlet.tags.ThemeTag标记库处理类

C、spring-form.tld标签库

Spring-form.tld标签库核心类的包在org.springframework.web.servlet.tags.form。

spring的表单标签库

D、使用Spring标签库

D.1、方法1

曾在《[JSP]自定义标签》介绍过如何自定义标签,那么我们知道我们必须取得标签库描述文件(spring.tld和Spring-form.tld)、标签处理类、并在web.xml中引入、最后才在jsp中使用。

1、将spring.tld和Spring-form.tld拷贝到WEB-INF目录。

2、将spring.jar拷贝到WEB-INF\lib包下

3、配置web.xml

<!-- 定义标签库描述文件 -->

<jsp-config>

    <taglib>

       <taglib-uri>/spring-form</taglib-uri>

       <taglib-location>/WEB-INF/spring-form.tld</taglib-location>

    </taglib>

    <taglib>

       <taglib-uri>/spring</taglib-uri>

       <taglib-location>/WEB-INF/spring.tld</taglib-location>

    </taglib>

</jsp-config>

<!-- 使用监听器加载spring配置文件 -->

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>

</context-param>

<listener>

    <listener-class>

       org.springframework.web.context.ContextLoaderListener

    </listener-class>

</listener>

一定要使用listener加载spring配置文件,不然会报“No WebApplicationContext found”的错。

.JSP代码

<%@ taglib uri="/spring" prefix="spring"%>

<%@ taglib uri="/spring-form" prefix="from"%>

<html>

    <head>

       <title></title>

    </head>

    <body>

       <spring:message></spring:message>

       <from:form></from:form>

    </body>

</html>

这种方法我们使用本地的tld,这种方法的好处我们可以自定义dtl。当然我们也可以使用网络上的tld。

D.2、方法2

1、配置web.xml

<!-- 使用监听器加载spring配置文件 -->

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>

</context-param>

<listener>

    <listener-class>

       org.springframework.web.context.ContextLoaderListener

    </listener-class>

</listener>

.JSP代码

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

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

<html>

    <head>

       <title></title>

    </head>

    <body>

       <spring:message></spring:message>

       <from:form></from:form>

    </body>

</html>

使用Spring标签库的更多相关文章

  1. Spring标签库

    spring提供了两个标签库文件:spring-form.tld(表单标签库,用于输出HTML表单)  spring.tld(基础标签库,用于Spring数据绑定等) 使用步骤: 1,配置表单标签库, ...

  2. SPRING 标签库

    打造专属自己的淘宝旺铺装修店铺优化商品推广网站客服工作物流发货 如果这个User的宿舍在Gryffindor(Gryffindor是哈利·波特在Hogwarts的宿舍——译者注), 那么“House” ...

  3. spring security的标签库

    应用标签库:<%@ taglib prefix='security ' uri='http://www.springframework.org/security /tags' %> < ...

  4. Spring MVC 数据绑定和表单标签库

    数据绑定是将用户输入绑定到领域模型的一种特性.作用是将 POJO 对象的属性值与表单组件的内容绑定. 数据绑定的好处: 1. 类型总是为 String 的 HTTP 请求参数,可用于填充不同类型的对象 ...

  5. 关于Spring MVC中的表单标签库的使用

    普通的MVC设计模式中M代表模型层,V代表视图层,C代表控制器,SpringMVC是一个典型的MVC设置模式的框架,对于视图和控制器的优化很多,其中就有与控制器相结合的JSP的表单标签库. 我们先简单 ...

  6. Spring MVC -- JSP标准标签库(JSTL)

    JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能.JSTL支持通用的.结构化的任务,比如迭 ...

  7. Spring MVC框架及标签库

    1.Spring MVC技术 1. 当DispatcherServlet接到请求时,他先回查找适当的处理程序来处理请求.DispatcherServlet通过一个或者多个处理程序映射,将每个请求映射到 ...

  8. 自定义jstl标签库

    开发环境:Spring+SpringMVC +Maven +Mybatis JSTL 标签库的配置: 导入对应的 jstl.jar 和 standard.jar ,我使用的配置如下: <prop ...

  9. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

    我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用   Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ...

随机推荐

  1. Sass入门——简介+语法格式及编译调试

    本文来自慕课网大漠. Sass简介 Sass和SCSS区别 1.后缀名不同,很好理解 2.Sass以严格的缩进语法规则书写,不带大括号和分号:而SCSS的语法规则和CSS的语法很类似. Sass: $ ...

  2. MySQL 存储过程创建表

    创建 CREATE PROCEDURE  Pro_IsExistTable(ableName varchar(100),out outputParam int)BEGINset @csql=conca ...

  3. NOIP2015酱油记

    day0 坐动车到广州..下午就在酒店颓... day1 早上6:30起床...大概8:00到六中..ZSJZ众貌似很晚才到..毕竟他们酒店就在学校门口(真的就刚刚好是门口...),大概8:15进去机 ...

  4. HTML5 总结-画布-4

    HTML5 画布 创建 Canvas 元素 向 HTML5 页面添加 canvas 元素. 规定元素的 id.宽度和高度: <canvas id="myCanvas" wid ...

  5. Linux 环境下 fork 函数和 exec 函数族的使用

    前言 接触 Linux 已经有几个月了,以前在网上看各路大神均表示 Windows 是最烂的开发平台,我总是不以为然,但是经过这段时间琢磨,确实觉得 Linux 开发给我带来不少的便利.下面总结一下学 ...

  6. css网页自适应-2

    昨天中午Google进行了一次在线讲座,讲述自适应网页设计的概念和方法,维护同一个网页代码,即可使网站在多种浏览设备(从桌面电脑显示器到智能手机或其他移动产品设备)上具有更好的阅读体验,这里我将该讲座 ...

  7. HH的军训(容斥)

    1248: HH的军训 时间限制: 1 Sec  内存限制: 128 MB 提交: 95  解决: 11 [提交][状态][讨论版] 题目描述 大学里,最难忘的事情莫过于军训了,白白的HH童鞋就被无情 ...

  8. unix ls命令

    [语法]: ls  [-RadCxmlnogrtucpFbqisf1]   [文件夹或文件......] [说明]: ls 命令列出指定文件夹下的文件,缺省文件夹为当前文件夹 ./,缺省输出顺序为纵向 ...

  9. if语句求三个数中最大的

    Console.WriteLine("请输入第一个数:"); int a = Convert.ToInt32( Console.ReadLine()); Console.Write ...

  10. 在storyboard中设置控件的layerbordercolor

    在SB中控件可以在SB中直接利用kvc 设置一些属性值,不如layerwidth等 但是不能更改和颜色有关的属性因为layerbordercolor是CGColor.通过为CALayer增加属性可以实 ...