springframework:Spring Framework标记库初学指南

  Spring是个服务于所有层面application framework:提供了bean配置基础AOP支持JDBC提取框架,抽象事务支持等等它有个非常显著特点:在某个层面上如果你不需要Spring支持你就可以不使用String只使用它部分功能从它设计理念你可以看到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>


……………………省略
</form>


Tags:  framework netframework2.0 netframework springframework

延伸阅读

最新评论

发表评论