|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,netbeans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。初学Spring是一个服务于一切层面的applicationframework:供应了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供应的标志库及其用法:
当你在项目顶用SpringFramework的时分,体现层能够选择SpringFramework自带的标志库。固然,这不是你独一的选择。你能够选择别的标志库或模板交换手艺。SpringFramework并没无为使用供应十分丰厚的标志库。SpringFramework供应的标志库仅仅是为了够用就行,它并非包罗万象的。呵呵,这点与Struts丰厚的标志库纷歧样。实在这点切合RodJohnson的起点,既“不造轮子”。固然,SpringFramework标志库有它本身的特性,能够说是个无益的增补吧。
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:hasBindErrorsname="priceIncrease"><b>Pleasefixallerrors!</b></spring:hasBindErrors>
经由过程这个复杂的例子,我来详细说一下这个标志的属性吧。
name:是要被反省的Bean的名字。这个属性是必须要的。
这里是复杂用法,以是就不先容它包括的errors变量了。详细看英语文档。下同。
2、spring:bind
对应org.springframework.web.servlet.tags.BindTag标志库处置类
这个标志用来为某个bean或bean的属性赋值,一般和form一同用,相称于action的感化。它指明表单要提交到谁人类或类的属性中往。
个中path属性是必需的,指明转到的类的路径。举比方下:
<formmethod="post">
<tablewidth="95%"bgcolor="f8f8ff"border="0"cellspacing="0"cellpadding="5">
<tr>
<tdalignment="right"width="20%">Increase(%):</td>
<spring:bindpath="priceIncrease.percentage">
<tdwidth="20%">
<inputtype="text"name="percentage"value="<c:outvalue="${status.value}"/>">
</td>
<tdwidth="60%">
<fontcolor="red"><c:outvalue="${status.errorMessage}"/></font>
</td>
</spring:bind>
</tr>
</table>
<br>
……………………省略
</form>
3、spring:transform
对应org.springframework.web.servlet.tags.TransformTag标志库处置类,这个标志用来转换表单中不与bean中的属性逐一对应的那些属性,一般和<spring:bind>一同利用。<spring:transform>标志为<spring:bind>利用供应了更好的撑持。
属性以下:
value:必须要的。和以后<spring:bind>标志指向的bean类不异。就是你要转换的实体类名。
var:不是必须的。这个字符串被用来绑定输入了局到page,request,session或applicationscope.默许情形输入到jsp中。
scope:不是必须的。条件前提var必需设置的情形下。它的值能够是page,request,session或application。
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或applicationscope.默许情形输入到jsp中。
scope:不是必须的。条件前提var必需设置的情形下。它的值能够是page,request,session或application。
5、spring:htmlEscape
对应org.springframework.web.servlet.tags.HtmlEscapeTag标志库处置类
不经常使用,这里省略
6、spring:theme
对应org.springframework.web.servlet.tags.ThemeTag标志库处置类
不经常使用,这里省略
进修完这些用法后,让我们来看个详细的例子吧。
设置步骤以下:
目次布局图:
-spirngapp
-WEB-INF
-classes
-lib
-src
-war
1、将spring.tld拷贝到WEB-INF目次。
2、将spring.jar拷贝到WEB-INFlib包下
举比方下:
在web.xml中设置好taglib属性,代码以下:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEweb-appPUBLIC-//SunMicrosystems,Inc.//DTDWebApplication2.3//ENhttp://java.sun.com/dtd/web-app_2_3.dtd>
<web-app>
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/spring</taglib-uri>
<taglib-location>/WEB-INF/spring.tld</taglib-location>
</taglib>
</web-app>
jsp页面代码以下:
<%@includefile="/WEB-INF/jsp/include.jsp"%>
<%@taglibprefix="spring"uri="/spring"%>
<html>
<head>
<title><fmt:messagekey="title"/></title>
</head>
<body>
<h1>
<fmt:messagekey="priceincrease.heading"/>
</h1>
<formmethod="post">
<tablewidth="95%"bgcolor="f8f8ff"border="0"cellspacing="0"cellpadding="5">
<tr>
<tdalignment="right"width="20%">Increase(%):</td>
<spring:bindpath="priceIncrease.percentage">
<tdwidth="20%">
<inputtype="text"name="percentage"value="<c:outvalue="${status.value}"/>">
</td>
<tdwidth="60%">
<fontcolor="red">
<c:outvalue="${status.errorMessage}"/>
</font>
</td>
</spring:bind>
</tr>
</table>
<br>
<spring:hasBindErrorsname="priceIncrease">
<b>Pleasefixallerrors!</b>
</spring:hasBindErrors><br><br>
<inputtype="submit"alignment="center"value="Execute">
</form>
<ahref="<c:urlvalue="hello.htm"/>">Home</a>
</body>
</html>
<spring:bind>标志常常用来绑定<input>表单位素以便提交给PriceIncrease.java,实在PriceIncrease.java中就是包括一些getter和setter的办法的类。当用户按下按钮提交的时分,其表单中的值实践上就被framework放到了PriceIncrease.java中。<spring:bind>常常和form一同利用.这个${status.errorMessage}和${status.value}是一个framework界说的特别变量,它们被用来显现毛病信息和以后表单中的数据。呵呵,明天就到此为止吧,关于SpringFramework标志库的具体用法,请参考其文档。
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大. |
|