|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。js|编码跟着J2EE瘦客户机手艺JavaServerPages(JSP)在已往几年中的盛行,自力开辟职员已创立了很多自界说的JSP标志库。固然良多标志库是编写用来完成分歧方针的,但它们常常也对迭代、前提及其他通用操纵都供应了相似的办理计划。
为了削减对办理相似通用成绩的自力标志库的需求,在JavaCommunityProcess(JSR52)的援助下创立了JSTL(JavaServerPagesStandardTagLibrary,JSP)尺度标志库,为办理这些通勤奋能供应一个单一的尺度办理计划。
JSTL库
JSTL出格为前提处置、迭代、国际化、数据库会见和可扩大标志言语(XML)处置供应撑持。JSTL还引进了expressionlanguage(EL,表达式言语),极年夜地简化了对JSP中使用数据的会见和操纵。JSTL包含4个JSP1.2自界说标志库,每个都涵盖了一个特定的功效范畴。
中心(Core)标志库为一样平常义务供应通用撑持,如显现和设置变量、反复利用一组项目、测试前提和其他操纵(如导进和重定向Web内容)。
XML标志库供应了对XML处置和操纵的撑持,包含XML节点的剖析、迭代、基于XML数据的前提评价和可扩大款式表言语转换(ExtensibleStyleLanguageTransformations,XSLT)的实行。
国际化(Internationalization)标志库撑持多语种的使用程序。
数据库(Database)标志库对会见和修正数据库数据供应尺度化撑持。
表1:JSTL的四个标志库
功效范畴URI前缀例子中心(Core)http://java.sun.com/jstl/corec<c:tagname...>XMLhttp://java.sun.com/jstl/xmlx<x:tagname...>国际化(Internationalization)http://java.sun.com/jstl/fmtfmt<fmt:tagname...>数据库(Database)http://java.sun.com/jstl/sqlsql<sql:tagname...>
JSTL进门
开端懂得JSTL的最好办法是会见Apache网站--jakarta.apache.org,并下载JSTL的参考完成。在Apache站点还可找到具体的安装指南。可下载的参考完成是一个JAR文件、文档和复杂代码示例的组合包。
要在你的J2EEWeb使用程序中利用JSTL,只需复杂地将"lib"目次下的JSTLJAR文件复制到你使用程序的WEB-INF/lib目次下。要在一个特定的JSP中利用JSTL标志,你还必需供应一个taglib指令。比方,要将"中心"JSTL库导进到你的页面中,你应当在你的JSP顶端包括上面的指令,以下所示:
- <%@tagliburi="http://java.sun.com/jstl/core"prefix="c"%>
复制代码 JSTL的EL撑持
JSTL的一个主要上风是它接纳了复杂的expressionlanguage(EL),该言语供应一个会见和操纵使用程序数据(如存储在servlet高低文中的数据)的复杂体例。
EL的语法很复杂,并且比Java中具有不异功效的暗示要对用户更加友爱。比方,pageContext.getAttribute("aName")表达式在EL中就成了${aName}。一切的JSTL标志在其属性值中都利用EL表达式。EL表达式在会见嵌套属性时利用${Java.expression}或${data.reference}格局。数据参考能够是对象及其属性大概对象及其属性数组:
数组存取操纵符也用于以索引元素汇合显现的数据,如Java数组或java.util.List:
在EL表达式中除可使用属性和数组元素操纵符和算术、干系和逻辑操纵符之外,你还可使用出格操纵符来测试对象是不是为空。
除对象和数组存取,EL还供应了一个完全的经常使用操纵符汇合,包含=、!、<、>、<=、>=、+、-、*、/等。
在任何JSP局限(页面、哀求、会话或使用程序)中的对象都能够在EL表达式中援用。比方,假如你有一个带有一个属性"Ename"的Javabean--Employee,那末能够用EL表达式${Employee.Ename}会见这个变量。
除显式变量,EL还供应了对隐式变量的哀求和应对对象中的隐式变量的间接会见。比方,以下语句将会见一个名为"empname"的哀求参数:
行将推出的JSP2.0和JSTL1.0都利用EL。但是,JSP2.0中利用的EL稍有一点分歧。JSTL专家组(JSR-052)已批准期近将推出的JSTL保护版中利用EL的JSP2.0版本。
利用JSTL中心标志库
JSTL中心标志库为诸如显现、迭代和设置变量等操纵供应了最经常使用的标志。上面,我们更具体地先容一些最经常使用的JSTL中心标志库。起首,在利用任何JSTL中心标志之前,你必要将以下指令增加到你的JSP中:
- <%@tagliburi="http://java.sun.com/jstl/core"prefix="c"%>
复制代码 你最常利用的JSTL操纵之一是显现静态值。为了显现静态数据,中心库供应了c:out标志。c:out标志在一个页面中显现一个EL表达式的值。比方:
- Firstname:<c:outvalue="${Employee.Ename}"/>
复制代码 c:out的值属性还能够包括文本和表达式的组合:
- <c:outvalue="Firstname:${Employee.Ename}"/>
复制代码 (注重:当JSP2.0供应对EL的撑持时,你无需再利用c:out操纵,你能够间接在页面中嵌进JSP表达式。)
另外一个操纵是设置变量。为了在一个页面中设置变量,中心标志库供应了c:set标志。这个例子显现了将变量Ename设置为参数"enameparm"的值:
- <c:setvar="Ename"value="${param.enameparm}"/>
复制代码 JSTL中心标志库还供应了用于处置前提的标志。c:if处置复杂的前提测试。盘算test属性中布尔表达式的值;假如是真,盘算主体中的内容。鄙人面的操纵中,你还能够看到存储测试了局以备今后在页面(大概在其余中央,假如指定了其他的可选局限属性)中利用的可选的var属性:
- <c:iftest="${Employee.salary<=10000}">Itstimeforaraise<c:outvalue="${Employee.name">!</c:if>
复制代码 上面,你能够看到JSTL经由过程c:choose、c:when和c:otherwise对跳转逻辑的撑持。你能够在一个选择(choose)标志中包括一组c:when操纵;假如对c:when块中的表达式求值为真,则不合错误上面的c:choose操纵中的测试举行盘算。假如对c:when块中测试求值没有一个为真,则盘算c:otherwise操纵(假如存在的话)的内容:
- <c:choose><c:whentest="${dept.name==development}">...</c:when><c:whentest="${dept.name==marketing}">...</c:when><c:otherwise>...</c:otherwise></c:choose>
复制代码 c:forEach标志供应了一个对元素汇合举行迭代的复杂办法。假如你只想迭代汇合中的部分元素,你能够分离指定入手下手和停止索引和带有可选的入手下手、停止与步进属性的增量值。鄙人例中,我们对变量empNames中的一个汇合的内容举行迭代;在每一个轮回中,下一个元素被安排在变量名中,并在c:forEach操纵的主体中举行求值。
- <table><c:forEachvar="name"items="${empNames}"><tr><td><c:outvalue="${name}"/></td></tr></c:forEach></table>
复制代码 JSTL中心标志库还能够简化非常处置。之前,你必需将Javatry/catch语句安排在Javascriptlet中,大概在毛病页面中供应它们。JSTL经由过程c:catch标志供应了一个处置非常的拙劣办法,而无需利用scriptlet。
- <c:catch><!―...somesetofnestedJSTLtagsthatfireanexception-></c:catch>
复制代码 能够在jakarta.apache.org的参考完成中供应的JSTL文档中找到其他JSTL标志库如XML、国际化和数据库标志库的例子。
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点, |
|