JSP中的JSTL、POJO、MVC
1 JSTLJSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。
1.1 JSTL的作用
JSTL 有助于加速开发周期,极大地简化了 JSP 应用程序的开发和维护。
1.2 JSTL的使用
将jstl.jar和 standard.jar文件放到classpath中,如果你还需要使用XML processing及Database access (SQL)标签,还要将相关JAR文件放到classpath中,在JSP页面头部加入<%@ taglib prefix="..." uri="..." %>,然后在这个JSP页面中就可以使用这个引入的标签了。
1.3 JSTL中常用标签
核心标签库、国际化标签(I18N)
1.3.1 核心标签库
Core 标签库主要包括了一般用途的标签、条件标签、迭代标签和 URL 相关的标签。在 JSP 页面使用 Core 标签,要使用 taglig 指令,指定引用的标签库,如下:
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>
out标签
<c:out>的功能与JSP中的<%= 表达式%>类似,用于向页面输出,其语法格式分为如下五种:
通过在<c:out>中的value属性指定需要显示的值。<c:out value="value"/>
通过escapeXml属性设置是否将value中的内容按照原样输出。因为<c:out>默认会将<、>、’、”、&转换成<、>、'、"和&。如果不想转换,只需要设定escapeXml属性为“false”。<c:out value="value" escapeXml="true | false"/>
通过default属性来指定默认值。如果value的值为null时,则显示default的值。<c:out value="value" default="No data"/>
通过本体内容来指定默认值。如果value的值为null时,则显示default的值。<c:out value="value" escapeXml="true | false"/>本体内容</c:out>
set标签
.<c:set>用于设置范围变量的值或者 javabean 对象的属性,其语法格式分为如下五种:
指定变量名以及变量值,不指定scope(范围)。<c:set var="username" value="value"></c:set>
将value的值储存到范围为scope的变量中。<c:set var="username" value="value" scope=”page | request | session | application”></c:set>
将本体内容的数据储存至范围为scope的变量中。<c:set var="varname" scope=”page | request | session | application”>本体内容</c:set>
将value值储存到targer对象的属性中。<c:set value=”value” target=”target” property=”propertyName”></c:set>
将本体内容的数据储存到targer对象的属性中。<c:set target=”target” property=”propertyName”>本体内容</c:set
remove标签
<c:remove>用来移除指定范围的变量。其语法格式如下:
<c:remove var=”number” scope=”session”>,var属性指定待删除变量的名称,scope属性是可选的,用来指定删除变量的范围,缺省为page。
if标签
<c:if>标签用来执行流程控制,其功能和Java语言中的if完全相同。<c:if>标签有两种语法格式:一种没有本体内容,一种有本体内容。
没有本体内容的<c:if>标签格式如下。<c:if test = ”testCondition” var=”varName” [scope=”{page | request | session | application}]” />其中test属性是必须填写的,表示进行判断的表达式。属性var定义变量,该变量存放判断后的结果。scope表示var定义变量储存的范围。
有本体内容的<c:if>标签格式如下。<c:if test = ”testCondition” var=”varName” [scope=”{page | request | session | application}]” >本体内容</if>其中test属性是必须填写的,当test中表达式的结果为true时,则会执行本体内容;如果为false则不会执行。
choose、when、otherwise标签
<c:if>标签只能判断一个表达式,而且无法指定如果表达式不成立执行语句。JSTL同样提供了类似于if....else....的语句<c:choose>标签。<c:choose>中可以有一个或多个<c:when>标签,有零个或多个<c:otherwise>标签。其语法格式如下:
<c:choose>
<c:when test = ”testCondition”>
</c:when>
...
<c:oherwise>
</c:oherwise>
</c:choose>
forEach标签
<c:forEach>标签两种语法格式。一种用来遍历集合对象的成员,一种用来使语句循环执行指定次数。
<c:forEach>遍历集合对象的成员,语法格式如下:<c:forEach [var=”varname”] items=”collection” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>本地内容</forEach>,其中“var”用来存放现在指到的成员;“items”指被迭代的集合对象;“varStatus”用来存放现在指到的相关成员的信息;“begin”表示开始位置(默认为0);“end”表示结束位置。“step”表示步长(默认为1)。
<c:forEach>指定语句执行次数,其语法格式如下:<c:forEach [var=”varname”] [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>本地内容</forEach>
forTokens标签
<c:forTokens>用来根据指定分隔符分割字符串。其语法格式如下:
<c:forTokens [var=”varname”] items=”stringOfTokens” delims=”delimiters” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>本地内容</c:forTokens>
其中“var”、“varStatus”、“begin”、“end”、“step”属性和<c:forEach>标签中用法一样。“items”属性表示被分割的字符串,“delims”属性指定分隔符。<c:forTokens>不仅可以分割仅有一个分隔符的字符串,也可以通过设定多个分割符来分割有多个分隔符的字符串,只需要设置多个分隔符就可以了。
import标签
<c:import>可以把其他静态或动态的文件包含到本身的JSP网页中。它和JSP动作指令的<jsp:include>最大的差别在于:<jsp:include>只能包含和自己在同一Web application下的文件;而<c:import>除了能够包含和自己的同一Web application的文件外,也可以包含不同Web application或者其他网站的文件。<c:import>的语法格式如下:
<c:import url=”url” [context=”context”] [var=”varName”] [scope=”{page | request | session | application}”] [charEncoding=”charEncoding”]>本体内容</c:import>或
<c:import url=”url” [context=”context”] varReader=”varReaderName” [charEncoding=”charEncoding”]>本体内容</c:import>
param标签
<c:param>标签用来传递参数,其包含两个参数name和value。< c:param>的语法格式如下:
<c:param name=“参数名” value=“参数值”>
1.3.2 国际化标签(I18N)
在JSP页面中要使用到格式化标签,必须使用<%@taglib%>指令,指定格式化标签。代码如下:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
formatNumber标签
<fmt: formatNumber>会根据区域或是定制的方式将数字格式化成数字、货币或百分比。语法分为两种,一种是没有本体内容,使用value属性来指定要格式化的数字;一种有本体内容,使用本体内容来指定要格式化的数字。格式如下:
<fmt:formatNumber value=&rdq
补充:Web开发 , Jsp ,
- 更多JS疑问解答:
- 几个验证11位手机号码格式的js代码
- js把图片转换成 base64代码
- js把base代码转换成图片
- JS 将 base64编码的图片转化为图片文件
- js中的定时器
- js如何获得FCKeditor控件的值
- 用js限制投票的cookie .目前设置的为:<input type="" class="" onclick="'window.location...
- JS验证,这块“牛皮”反复修改都不能实现
- 在JS中使用DOM模型
- 如何用JS 获取本地文件夹的文件列表
- js中new 了两个Object数组。怎么样将数组内容合并,重复的内容?
- 求实现自动生成图片缩略图的JS代码
- JS脚本网页问题
- js,代码中"object"和"Object"区别?
- js+flash实现网页图片切换效果,出现边框,单击激活此控件。