使⽤Spring标签库
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标记库处理类jstl条件标签
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)、标签处理类、并在l中引⼊、最后才在jsp中使⽤。
1、将spring.tld和Spring-form.tld拷贝到WEB-INF⽬录。
2、将spring.jar拷贝到WEB-INF\lib包下
3、配置l
<!-- 定义标签库描述⽂件 -->
<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>/l</param-value>
</context-param>
<listener>
<listener-class>
org.t.ContextLoaderListener
</listener-class>
</listener>
⼀定要使⽤listener加载spring配置⽂件,不然会报“No WebApplicationContext found”的错。
4.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、配置l
<!-- 使⽤加载spring配置⽂件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/l</param-value>
</context-param>
<listener>
<listener-class>
org.t.ContextLoaderListener
</listener-class>
</listener>
2.JSP代码
<%@ taglib uri="/tags" prefix="spring"%>
<%@ taglib uri="/tags/form" prefix="from"%>
<html>
<head>
<title></title>
</head>
<body>
<spring:message></spring:message>
<from:form></from:form>
</body>
</html>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。