仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1563|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA网页设计JSTL简化JSP编码

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:34:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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顶端包括上面的指令,以下所示:
  1. <%@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}格局。数据参考能够是对象及其属性大概对象及其属性数组:
  1. ${myobject.property}
复制代码
数组存取操纵符也用于以索引元素汇合显现的数据,如Java数组或java.util.List:
  1. ${myList[2]}$
复制代码
在EL表达式中除可使用属性和数组元素操纵符和算术、干系和逻辑操纵符之外,你还可使用出格操纵符来测试对象是不是为空。
除对象和数组存取,EL还供应了一个完全的经常使用操纵符汇合,包含=、!、<、>、<=、>=、+、-、*、/等。
在任何JSP局限(页面、哀求、会话或使用程序)中的对象都能够在EL表达式中援用。比方,假如你有一个带有一个属性"Ename"的Javabean--Employee,那末能够用EL表达式${Employee.Ename}会见这个变量。
除显式变量,EL还供应了对隐式变量的哀求和应对对象中的隐式变量的间接会见。比方,以下语句将会见一个名为"empname"的哀求参数:
  1. ${param.empname}
复制代码
行将推出的JSP2.0和JSTL1.0都利用EL。但是,JSP2.0中利用的EL稍有一点分歧。JSTL专家组(JSR-052)已批准期近将推出的JSTL保护版中利用EL的JSP2.0版本。
利用JSTL中心标志库
JSTL中心标志库为诸如显现、迭代和设置变量等操纵供应了最经常使用的标志。上面,我们更具体地先容一些最经常使用的JSTL中心标志库。起首,在利用任何JSTL中心标志之前,你必要将以下指令增加到你的JSP中:
  1. <%@tagliburi="http://java.sun.com/jstl/core"prefix="c"%>
复制代码
你最常利用的JSTL操纵之一是显现静态值。为了显现静态数据,中心库供应了c:out标志。c:out标志在一个页面中显现一个EL表达式的值。比方:
  1. Firstname:<c:outvalue="${Employee.Ename}"/>
复制代码
c:out的值属性还能够包括文本和表达式的组合:
  1. <c:outvalue="Firstname:${Employee.Ename}"/>
复制代码
(注重:当JSP2.0供应对EL的撑持时,你无需再利用c:out操纵,你能够间接在页面中嵌进JSP表达式。)
另外一个操纵是设置变量。为了在一个页面中设置变量,中心标志库供应了c:set标志。这个例子显现了将变量Ename设置为参数"enameparm"的值:
  1. <c:setvar="Ename"value="${param.enameparm}"/>
复制代码
JSTL中心标志库还供应了用于处置前提的标志。c:if处置复杂的前提测试。盘算test属性中布尔表达式的值;假如是真,盘算主体中的内容。鄙人面的操纵中,你还能够看到存储测试了局以备今后在页面(大概在其余中央,假如指定了其他的可选局限属性)中利用的可选的var属性:
  1. <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操纵(假如存在的话)的内容:
  1. <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操纵的主体中举行求值。
  1. <table><c:forEachvar="name"items="${empNames}"><tr><td><c:outvalue="${name}"/></td></tr></c:forEach></table>
复制代码
JSTL中心标志库还能够简化非常处置。之前,你必需将Javatry/catch语句安排在Javascriptlet中,大概在毛病页面中供应它们。JSTL经由过程c:catch标志供应了一个处置非常的拙劣办法,而无需利用scriptlet。
  1. <c:catch><!―...somesetofnestedJSTLtagsthatfireanexception-></c:catch>
复制代码
能够在jakarta.apache.org的参考完成中供应的JSTL文档中找到其他JSTL标志库如XML、国际化和数据库标志库的例子。


认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,
莫相离 该用户已被删除
沙发
发表于 2015-1-18 22:20:37 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
板凳
发表于 2015-1-23 19:38:55 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
不帅 该用户已被删除
地板
发表于 2015-1-29 10:07:58 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
因胸联盟 该用户已被删除
5#
发表于 2015-2-6 00:20:55 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
蒙在股里 该用户已被删除
6#
发表于 2015-2-14 15:18:47 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
金色的骷髅 该用户已被删除
7#
发表于 2015-2-22 20:17:26 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
再现理想 该用户已被删除
8#
发表于 2015-2-24 23:38:45 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
冷月葬花魂 该用户已被删除
9#
发表于 2015-2-26 20:50:18 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
兰色精灵 该用户已被删除
10#
 楼主| 发表于 2015-3-8 17:33:45 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
飘灵儿 该用户已被删除
11#
发表于 2015-3-12 02:10:34 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
再见西城 该用户已被删除
12#
发表于 2015-3-19 04:47:15 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
第二个灵魂 该用户已被删除
13#
发表于 2015-3-27 06:10:50 | 只看该作者
是一种为 Internet发展的计算机语言
精灵巫婆 该用户已被删除
14#
发表于 2015-4-1 03:09:25 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
小女巫 该用户已被删除
15#
发表于 2015-4-12 10:34:17 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
只想知道 该用户已被删除
16#
发表于 2015-4-16 18:11:43 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
海妖 该用户已被删除
17#
发表于 2015-4-17 13:05:12 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
若天明 该用户已被删除
18#
发表于 2015-4-18 02:17:02 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
乐观 该用户已被删除
19#
发表于 2015-5-1 00:10:19 | 只看该作者
是一种使用者不需花费很多时间学习的语言
老尸 该用户已被删除
20#
发表于 2015-5-6 22:11:54 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-2 23:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表