Spring Framework标记库简介
Spring是一个处事于所有层面的application framework:提供了bean的设置基本,AOP的支持,JDBC的提取框架,抽象事务支持,等等。它有一个很是显著的特点:在某个层面上假如你不需要Spring的支持,你就可以不利用String的class,只利用它的某一部门的成果。从它的设计理念,你可以看到String辅佐你实现了真正的逻辑层和web层的疏散。
相对付EJB来说,Spring是一个轻量级的J2EE应用开拓框架。这里提到的轻量级指的是Spring框架自己,而不是说Spring只能合用于轻量级的应用开拓。Spring的轻盈表此刻其框架自己的基本布局以及对其他应用东西的支持和装配本领,与EJB这种庞然大物对比,Spring使我们把各个技能条理之间的风险低落。EJB的内聚性较强,好比数据耐久层打点、事务打点、生命周期打点都全部交给了EJB容器中打点,内聚性的白盒特征使我们必需放弃一部门可控性而去信任容器本领。而Spring则是思量如何“不造轮子”,如何更好的组装这些轮子,让他们更好的动弹。好比数据耐久层打点可以利用hibernate,日志打点可以利用jakartacommonlogging。一个较量得当的比喻就是“我们要钉几个钉子,为了完成这个目标,锤子出产商出产了大巨细小一系列的锤子,每个锤子都有一套巨大的利用要领,用来钉某种出格的钉子,功效令我们头疼不堪。办理锤子过多的问题,通过spring,我们可以利用几种锤子,但用起来象是只有一个锤子”。(注:这段话是在网上瞥见的,这里引用这个比喻,我小我私家以为很活跃)关于这个框架也有一些简朴的总结:“Spring有几个主要的部门:Bean+ApplicationContext,以一种统一的、IoC的方法查找、打点、组装、利用系统的组件,代替一切工场;耐久化框架;web框架。“J2EE框架”是RodJohnson的愿景,他但愿Spring为J2EE轻量级办理方案提供自底至顶的全面基本设施支持。”
上面是关于一个新的Framework的简朴先容,听说是将来J2EE成长的偏向。以前在论坛上有关于J2EE最佳组合的接头,传闻这个JSTL+Struts(或webwork)+Spring+Hibernate的组合很被看好,假如你感乐趣的话,可以到SpringFramework中文论坛上看看。下面转入本文的正题。
Spring 标志库先容及用法:
本文将重点先容Spring 提供的标志库及其用法:
当你在项目顶用Spring Framework的时候,表示层可以选择Spring Framework自带的标志库。虽然,这不是你独一的选择。你可以选择其它标志库或模板替换技能。Spring Framework 并没有为应用提供很是富厚的标志库。Spring Framework 提供的标志库仅仅是为了够用就行,它并不是无所不包的。呵呵,这点与Struts富厚的标志库纷歧样。其实这点切合RodJohnson的出发点,既“不造轮子”。虽然,Spring Framework标志库有它自身的特点,可以说是个有益的增补吧。
Spring 标志库分类如下:
1、spring:hasBindErrors
2、spring:bind
3、spring:transform
4、spring:message
5、spring:htmlEscape
6、spring:theme
下面我们来详细先容一下用法:
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的名字。这个属性是必必要的。
这里是简朴用法,所以就不先容它包括的errors变量了。详细看英语文档。下同。
2、spring:bind
对应org.springframework.web.servlet.tags.BindTag标志库处理惩罚类
这个标志用来为某个bean或bean 的属性赋值,凡是和form一起用,相当于action的浸染。它指明表单要提交到谁人类或类的属性中去。
个中path属性是必需的,指明转到的类的路径。举譬喻下:
<form method="post">
<table width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5">
<tr>
<td alignment="right" width="20%">Increase (%):</td>
<spring:bind path="priceIncrease.percentage">
<td width="20%">
<input type="text" name="percentage" value="<c:out value="${status.value}"/>">
</td>
<td width="60%">
<font color="red"><c:out value="${status.errorMessage}"/></font>
</td>
</spring:bind>
</tr>
</table>
<br>
……………………省略
</form>