当前位置:文档之家› JSTL

JSTL

JSTL
JSTL

JavaServer Pages Standard Tag Library

目 錄

JSTL簡介 (1)

核心標籤庫(Core Tag Library) (1)

運算式操作(General Expression Tags) (2)

流程控制(Conditional Tags) (5)

迭代操作(Iterator Tags) (7)

URL操作(Import Tags) (10)

I18N格式標籤庫(I18N-Capable Formatting Tags) (14)

國際化格式標籤 (14)

訊息格式標籤 (15)

數字日期格式化標籤 (19)

SQL標籤庫(SQL Tags) (25)

設定資料庫連線 (25)

SQL存取指令 (26)

函式標籤庫(Function Tags) (31)

JSTL簡介

?JavaServer Pages Standard Tag Library (1.1) – JSP標準標籤函式庫,應用於基本輸

出、輸入、流程控制、迴圈、XML文件剖析、資料庫查詢及國際化文字格式標準

化(UTF)等。主要分為以下五大類

JSTL Prefix

URI Example 核心標籤庫

(Core Tag Library)

c https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core

I18N格式標籤庫

(I18N-capable-formatting Tag Library) fmt https://www.doczj.com/doc/f25314476.html,/jsp/jstl/fmt

Date>

SQL標籤庫(SQL Tag Library) sql https://www.doczj.com/doc/f25314476.html,/jsp/jstl/sql

>

XML標籤庫(XML Tag Library) xml https://www.doczj.com/doc/f25314476.html,/jsp/jstl/xml

>

函式標籤庫

(Functions Tag Library)

fn https://www.doczj.com/doc/f25314476.html,/jsp/jstl/functions

?安裝JSTL1.1

JSTL官方網站為https://www.doczj.com/doc/f25314476.html,/products/jsp/jstl/

必須在支援Servlet 2.4及JSP2.0以上版本的Container使用。

下載網址:https://www.doczj.com/doc/f25314476.html,/taglibs/index.html

解壓縮目錄下之子目錄\standard\javadoc中即API套件說明文件。

將子目錄\standard\lib下之jstl.jar及standard.jar檔複製到伺服器站台下WEB-INF\lib中,或放在伺服器的共用程式資料夾(如Tomcat的\commom\lib),

即可在JSP中使用JSTL。

將子目錄\standard\tld下之tld檔複製到WEB-INF目錄下以便日後使用。

將子目錄\standard下的standard-examples.war檔案複製到伺服器路徑下(如Tomcat的webapps),會自動部署standard-examples站台,可在該站台下瀏覽

JSTL範例程式檔案。

核心標籤庫(Core Tag Library)

?核心標籤庫主要功能如下

功能分類標籤名稱

運算式操作out, set, remove, catch

流程控制if, choose…when…otherwise

迭代操作forEach, forTokens

URL操作import, url, redirect

使用核心標籤庫時使用<%@tablib %>指令,並設定prefix和uri值如下<%@taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core"%>

運算式操作(General Expression Tags)

? - 顯示資料的內容

Syntax 1: with body

Syntax 2: without body

Default value

屬性說明

名稱說明EL 型態是否必須預設值value 要被顯示出來的值Y Object 是無default 預設值Y Object 否無escapeXml 是否轉換特殊字元如:<轉為<Y boolean否Yes value所定義的值除了一般字串外,可作簡單的數值計算,如value=”${3+5}”;

亦可為表單所傳過來的參數,例如value=”${param.data}”會將標單中參數data

的值顯示出來。

假如value為空值時,會顯示default所定義的值;若沒有設定default值時則會顯示一個空字串。

如escapeXml屬性不為false時,會將如下表之特殊字元等做轉換。

字元< > ‘ “ &

"

&

Entity < >

'

? - 將變數儲存至JSP範圍中或JavaBean的屬性中

Syntax 1: 將value的值儲存到範圍為scope的varName變數中

Syntax 2: 將本體內容的資料儲存至範圍為scope的varName變數之中

……statement body

Syntax 3: 將value的值儲存至target物件的屬性中

Syntax 4: 將本體內容的資料儲存至target物件的屬性之中

……statement body

屬性說明

名稱說明EL 型態是否必須預設值value 要被儲存的值Y Object否無

var 欲存入的變數名稱N String否無

scope var變數的JSP範圍N String否page target 為一JavaBean或java.util.Map物件Y Object否無property 指定target物件的屬性Y String否無

? - 移除變數

Syntax:

屬性說明

名稱說明EL 型態是否必須預設值var 欲移除的變數名稱N String是無

scope var變數的JSP範圍N String否page scope屬性可有可無,但若不設定scope,則會刪除所有範圍中(Page, Request, Session, Application)被var定義的名稱所有資料。

? - 處理產生錯誤的例外狀況並儲存錯誤訊息

Syntax:

……欲擷取之錯誤部份

屬性說明

名稱說明EL 型態是否必須預設值var 儲存錯誤訊息的變數名稱N String無無 當錯誤發生在…之間時只會忽略這段程式,整個網頁並不會中止。

?Example:

JSTLLogin.htm程式檔

JSTL登入表單

請輸入資料登入網站


使用者名稱:


使用者密碼:


JSTLLogin.jsp程式檔

<%@page contentType="text/html;charset=big5"%>

<%@taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core"%>

JSTL Test Page

Working with c:out


The browser is:




escapeXml="false"/>

Working with c:set and c:remove


${3+5}


pageScope.number:
requestScope.number:

sessionScope.number:

applicationScope.number:

After removing sessionScope.number:


Working with c:catch for Error Message

<% String eFormat="not number" ; int i =

Integer.parseInt(eFormat) ; %>

${err_Message}

流程控制(Conditional Tags)

? - 與一般在程式中用的if 一樣。 Syntax 1: without body

[scope=”{page|request|session|application}”]/>

Syntax 2: with body

……statement body

屬性說明 名稱 說明

EL 型態

是否必須 預設值

test 如果運算式的結果為true 則執行本體內容,false 則相反

Y boolean 是 無 var

儲存test 運算後的結果,即true 或false N String

scope var 變數的JSP 範圍 N

String 否 page 一般testCondition 運算式用來比對表單傳來的資訊,例如

${https://www.doczj.com/doc/f25314476.html,er==’admin’},如果筆對正確,則varName 傳回true ;否則傳回false 。

? , , - choose 為when 和otherwise 的父標籤,

用法如同if…then…else一般。

Syntax:

condition1為true

condition2為true

……

conditionN為true

前述之condition均為false

屬性說明

名稱說明EL 型態是否必須預設值test 如果運算式的結果為true則執行本

Y boolean是無體內容,false則相反

比須在之間,且在同一個中,則必須在之前。

?Example

JSTLCondition.htm程式碼

JSTL登入判斷

請輸入資料登入網站


method=POST>

使用者名稱:


使用者密碼:


JSTLCondition.jsp程式碼

<%@page contentType="text/html;charset=big5"%>

<%@taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core"%>

JSTL Condition Tag Test Page



執行結果: ${condition}


password 1: 1234

password 2: 5678

Incorrect Password

迭代操作(Iterator Tags)

? - 為迴圈控制,將集合(Collection)中的成員循序瀏覽過一遍,當設定條件符合時會持續重覆執行標籤範圍內的本體內容。

Syntax 1: 迭代一集合物件之所有成員

……Statement Body

Syntax 2: 迭代指定的次數

……Statement Body

屬性

名稱說明EL 型態是否必須預設值

var 存放現在指到的成員N String 否無

items 被迭代的的集合物件Y Array, Collection,

否無

Iterator, String,

Enumeration, Map

varStatus 存放現在指到的相關

N String 否無

成員資訊

begin 開始的位置Y int 否0

end 結束的位置Y int 否最後一個成員step 每次迭代的間隔數Y int 否 1 有begin屬性時,begin必須大於等於0;有end屬性時,必須大於begin;有step屬性時,step必須大於等於1。

如果需要在循序瀏覽一個集合物件時將內容印出來,就必須有items屬性,否則表示空集合(即items視為null);當begin大於或等於items大小時則迭代不

算。

? - 用來瀏覽一字串中所有的成員,字串成員由定義符號(delimiters)所分隔。

Syntax:

……Statement Body

屬性

名稱說明EL 型態是否必須預設值

var 存放現在指到的成員N String 否無

items 被迭代的的集合物件Y Array, Collection,

是無

Iterator, String,

Enumeration, Map

delims 定義分割字串的字元N String 是無varStatus 存放現在指到的相關

N String 否無

成員資訊

begin 開始的位置Y int 否0

end 結束的位置Y int 否最後一個成員step 每次迭代的間隔數Y int 否 1 有begin屬性時,begin必須大於等於0;有end屬性時,必須大於begin;有step屬性時,step必須大於等於1。

如果需要在循序瀏覽一個集合物件時將內容印出來,就必須有items屬性,否則表示空集合(即items視為null);當begin大於或等於items大小時則迭代不

算。

?Example: JSTLIterate.jsp

<%@page contentType="text/html;charset=Big5"%>

<%@taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core"%>

JSTL Test - forEach tags

<%

String str[] = new String[5] ;

str[0] = "Hello" ;

str[1] = "Hellen" ;

str[2] = "Heath" ;

str[3] = "Wealth" ;

str[4] = "Knowledge" ;

;

request.setAttribute("atts",str)

%>

Omit begin, end, step

${item}

Use begin, end, step

${item}

Use begin, end, step without items

${item}

Consider varStatus

-

index: ${s.index} |

count: ${s.count} |

first: ${s.first} |

${https://www.doczj.com/doc/f25314476.html,st}

last:


After delimition:

${item}

URL操作(Import Tags)

? - 可以把其他靜態或動態文件包含至本身JSP網頁。只能包含和自己同一個web application下的文件;而則可以包含不同web application或其他網站的文件。

Syntax 1: 使用String型態存入

[scope=”{page|request|session|application}”] [charEncoding=”charEncoding”]> ……Statement Body

Syntax 2: 使用Reader型態存入

……Statement Body

屬性

名稱說明EL 型態是否必須預設值url 欲包含文件之網址Y String 是無

var 儲存備包含的文件內容(以String型態

N String 否無存入)

scope var變數的JSP範圍N String 否Page context 在相同Container下欲包含之網址文件

Y String 否無名稱,其他Web站台必須以/開頭。

charEncoding 被包含文件的編碼格式N String 否無varReader 儲存被包含文件的內容(以Reader型

N String 否無態存入)

url為必要屬性,可以用相對位址寫出網頁檔名,如url=”images/Data.htm”,表示Data.htm網頁在此JSP檔所在目錄底下之images子目錄下;如果該路徑

對應位置為站台之根目錄,則路徑前記得加上/,如url=”/images/Data.htm”

如使用絕對位址,則列出網址,如url=”https://www.doczj.com/doc/f25314476.html,”

也支援FTP協定,例如要把把某FTP站台下的Data.txt文件內容顯示出來,則為url=”ftp://https://www.doczj.com/doc/f25314476.html,.tw/Data.txt”

如果所欲顯示的文件在同一個伺服器上另一個Web站台上時,必須加上context

屬性,如另一站台名稱為others,則

但此時該站台必須在伺服器文件中被定義過。例如Tomcat的server.xml檔案

中,定義一個名為others的Web站台如下

:

crossContext=”true”/>

:

當var屬性存在時,會把欲包含文件之內容以字串型態涵蓋進來存在varName 中,但不輸出在網頁上,且由scope設定其範圍,在需要的時候(例如版權宣

告、歡迎語句等)再以變數型態輸出,如

? - 主要是用來產生一個URL。

Syntax 1: without statement body

[scope=”{page|request|session|application}”]/>

Syntax 2: with statement body

[scope=”{page|request|session|application}”]>

標籤變數

屬性

名稱說明EL 型態是否必須預設值url 欲執行之網址Y String 是無

var 儲存備包含的文件內容(以String型態

N String 否無存入)

scope var變數的JSP範圍N String 否Page context 在相同Container下欲包含之網址文件

Y String 否無名稱,其他Web站台必須以/開頭。

標籤的屬性規則與一樣。一般常搭配超連結標籤使用;或者直接顯示某站台的影像圖片,如

”>

? - 可以將用戶端的請求從一個JSP網頁導向到其他文件,使用此標籤之網頁將不會顯現出來。

Syntax 1: without statement body

Syntax 2: with statement body

標籤變數

屬性 名稱 說明 EL 型態 是否必須 預設值

url 欲執行之網址

Y

String 是

無 context

在相同Container 下欲包含之網址文件名稱,其他Web 站台必須以/開頭。

Y String 否

標籤的url 屬性規則與一樣。 ? Example:

JSTLURLTest.jsp 程式碼

<%@page contentType="text/html;charset=Big5"%>

<%@taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core"%>

JSTL URL Tags Test


Importing......

Following message is imported from JSTLImported.jsp


Following message is set in current page but retrieved from imported page and trasmitted back
${OutputParam}


"> JSTL Reference Documentation


Click here for redirect page:

JSTLRedirect.jsp

JSTLImported.jsp程式碼

<%@page contentType="text/html;charset=Big5"%>

<%@taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core"%>

JSTL Imported Page


${InputSetData}


JSTLRedirect.jsp程式碼

<%@page contentType="text/html;charset=Big5"%>

<%@taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core"%>

JSTL Redirect Page

I18N格式標籤庫(I18N-Capable Formatting Tags)

?JSTL中最重要的功能就是國際化格式(i18n)的支援,此功能可以對一個特定的語言請求作出適合的回應,例如台灣的使用者發出請求時,回應繁體的結果。

它使用J2SE的ResourceBundle,根據不同的地區選擇適合的

ResourceBundle。

用來設置地區,比如

EL表达式与JSTL

EL和JSTL 主要内容 ?EL表达式 ?JSTL标签库

1.EL表达式 EL表达式又称为表达式语言(Expression Language),它是JSP中一个很重要的组成部分。在JSP页面中使用EL表达式,可以简化对变量和对象的访问。 EL表达式的语法非常的简单,所有的EL表达式都是以“${”开始,以“}”结束,比如${name}。EL表达式会将表达式中的结果在页面上输出,就像使用JSP的表达式结构或使用out内置对象进行输出一样。 EL表达式对运算符支持 使用EL表达式进行算术运算,在EL表达式中支持+、-、*、/、%运算,示例如下: 代码演示:EL表达式算术运算 <%@ page language="java" pageEncoding="UTF-8"%> EL表达式算术运算 12 + 15 = ${12+15}
12 * 15 = ${12*15}
12 - 15 = ${12-15}
12 / 15 = ${12/15}
12 % 15 = ${12%15}

图1 EL表达式算术运算结果 在EL表达式中还可以支持关系运算符操作,示例如下: 代码演示:EL表达式关系运算符 12==15 ${12==15}
12<15 ${12<15}
12>15 ${12>15}
12<=15 ${12<=15}
12>=15 ${12>=15}
12!=15 ${12!=15} EL表达式除了支持普通的关系运算符外,还可以使用字符来表示关系运算符,下面的写法和上面使用普通关系运算符表示的顺序一一对应: 代码演示:EL表达式关系运算符 12==15 ${12 eq 15}
12<15 ${12 lt 15}
12>15 ${12 gt 15}
12<=15 ${12 le 15}
12>=15 ${12 ge 15}
12!=15 ${12 ne 15}

JSTL,EL面试题

###1. 为什么要用自定义标签? ①Jsp中写代码比较混乱,难以维护 ②把一些重复的功能都抽取出来,方便复用。 ###2. 自定义标签分为几个步骤. 1.编写标签处理器类(SimpleTagSupport的实现类) 重写doTag() 2.编写标签库文件(WEB-INF/xxx.tld) 整个文件的定义: 标签的定义: 3.在jsp页面使用标签: 导入标签库(xxx.tld/) 使用标签 ###3. 自定义标签类要继承哪个类? SimpleTagSupport类 sim·ple tag s?'p?rt ###4. 怎么配置自定义标签的属性 在.tld文件标签中添加, 通过标签设定自定义标签的标签名。 ###5. 为什么要用EL表达式,有什么好处 1.在页面中用js脚本和jsp表达式来获取数据显示比较麻烦 a:需要条件判断 b:可能需要强转 2.好处是EL表达式简单易用,默认可访问所有的JSP隐藏对象。 ###6. EL表达式的语法是什么? 美元符号加大括号---> ${ EL表达式} ###7. EL有哪两种访问格式,有什么区别? EL 提供“.“和“[ ]“两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如. 或- 等并非字母或数字的符号,就一定要使用“[ ]“。例如:

${ user. My-Name}应当改为${user["My-Name"]} 如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如: ${https://www.doczj.com/doc/f25314476.html,er[data]}中data 是一个变量。 ###8. EL表达式中有哪些隐藏对象,举几个例子? pageContext : JSP页面的上下文 param : 参数 paramValues : 参数值 header : 头信息 headerValues : 头的值 cookie : 缓存 initParam : 初始化参数 ###9. EL表达式中怎么样拿到request,session里面的值? 例: 可以通过它的隐藏对象RequestScope来获取到Request范围的属性名称所对应的值。 可以通过它的隐藏对象sessionScope来获取到session范围的属性名称所对应的值。###10. EL表达式怎么样拿到用户请求的参数? 可以用${https://www.doczj.com/doc/f25314476.html,} 来获取用户请求的参数 ###11. EL表达式怎么样得到上下文路径? ${pageContext.request.contextPath} ###12. EL表达式怎么样拿到request? RequestScope ###13. JSTL全称是什么? java服务器页面标准标签库 (JavaServer Pages Standard Tag Library) ###14. JSTL是怎么使用的? 将jstl.jar、standard.jar 复制到Tomcat 的WEB-INF\lib 中. 若要在JSP 网页中使用JSTL 时,一定要先做下面这行声明: < %@ taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core" %>

尚学堂java视频学习顺序(由十年整理)

尚学堂视频学习顺序 1. 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第1章_JAVA简介_源代码_及重要说明尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第2章_基础语法 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第2章_递归补充 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第3章_面向对象 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第4章_异常处理 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第5章_数组 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第5章_数组 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第6章_常用类 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第7章_容器 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第8章_IO 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第9章_线程 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI 2. 尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse 3 尚学堂科技_马士兵_坦克大战视频教程_java_eclipse 4 尚学堂科技_马士兵_坦克大战图片版 5 尚学堂科技_马士兵_坦克大战网络版视频教程 6 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_专题_日期处理 7 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_专题_正则表达式 8 尚学堂科技_张志宇_SERVLET_JSP_视频教程_第一版 9 尚学堂科技_马士兵_JDBC_MYSQL_BBS项目课堂实录视频教程 10 尚学堂科技_马士兵_BBS_项目补充_MySQL简明视频教程 11

JSTL标准标签库

一、JSTL简介 引入:在JSP以及javaBean中,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽可能的避免使用jsp脚本编制元素,进一步将应用程序的显示层和业务层完全分离,更加有利于应用程序的分工协作,jsp开发者指定了 JSTL ,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库,即JSTL。 1) 定义:包含编写和开发JSP页面的一组标准标签 a) 特点:为开发者提供了一个无脚本环境,无需编写JAVA脚本 b) 包含 1. 核心标签库 2. SQL标签库 3. 国际化(I18N)与格式化标签库 4. XML标签库 c) 分类:两个版本 1. 使用 EL 2. 使用请求时表达式 2) 作用 a) 进一步简化开发,简化页面, 实现页面脱离jsp脚本元素 b) 让页面尽可能少的出现java代码 c) 优势:与EL表达式配合使用,可以用EL 代替属性值进一步动态改变 3) 使用 a) 导入标签库(Eclipse等工具中需要做这一步) b) 使用标签库中标签的实施步骤 i. 将JSTL对应的JAR文件:jstl.jar、standard.jar添加到应用程序的WEB-INF/lib目录(这两个jar文件见课件目录” JSTL标签库”) ii. 在编写的jsp页面中指定标签库的描述信息: 语法:<%@ taglib prefix=”c” uri=”https://www.doczj.com/doc/f25314476.html,/jstl/core_rt” %> 关于上述语法使用的扩充: <%@ taglib prefix =”标签别名” uri =”标签库的位置“> 1. 标签别名常用c 2. 标签库的位置:(即uri的设置) a) 教材上:” https://www.doczj.com/doc/f25314476.html,/jstl/core_rt“ 指向sun公司网站上的库文件地址,注意这里只是个地址指向,即使没有上网,在工具中也已经对应到工程中的路径了(注意:此时要先将标签库的两个jar文件放入”工程\WEB-INF\lib”目录下。) b) 也可使用:”/WEB-INF/c.tld ”(但要注意:此时要先将标签库两个jar文件中的一个standard.jar文件解压后的目录META-INF中的所有*.tld文件放入”工程名/WEB-INF/”目录下,即保证该目录下有c.tld文件) 注意:上述两种导入标签库的方式,以第一种为佳,即只需要将两个标签库jar文件放入”工程\WEB-INF\lib”目录下即可。 c) 在JSP中使用 3. 4. xxxxx就是标签库中提供的各种功能,详述如下: 二、核心标签库-----core 或 c.tld a) 分类:

jsp中c标签的使用

核心标签库 它是JSTL中的核心库,为日常任务提供通用支持,如显示和设置变量、重复使用一组项目、测试条件和其他操作(如导入和重定向Web内容)。Core标签按功能可分为4种类型: 1 变量维护: (1):设置变量值和对象属性。语法如下: 每种设置都有两种方式,总结起来,的4种形式,如下所示: a. 使用标记属性设置JSP变量 b. 使用标记体设置JSP变量 标记内容 c. 使用标记属性设置对象属性 d. 使用标记体设置对象属性 标记内容 (2):在指定作用域范围内删除变量。语法如下: 2 流程控制:分为条件标签和迭代标签。 条件标签: (1):与Java语言中的if语句的使用方法一样,但不能实现else的功能。 标签有两种语法形式,是以有无标记体来区分的。

C标签用法

JSTL标签用法 关键字:JSTL标签、 原来一直没有看过,我说过我是新手,但是好多资料上似乎也不重视JSTL 。我看项目源代码发现其中使用到了这个标签库,感觉其还真是方便,页面看起来更加清爽。减少了JA V A 程序员亲自写的代码量,还真验证了,不懒不做程序员,程序员如果写代码不想着偷懒,那么生活是很无趣的。 下面总结总结,学习学习。:) JSP 标准标记库(Standard Tag Library ,JSTL) 是一组以标准化格式实现许多通用的Web 站点功能的定制标记。 JSP 技术的优势之一在于其定制标记库工具。除了核心JSP 标记,如jsp:include 之外,定制标记库工具使您能够创建唯一的标记来描述以站点或应用程序为导向的操作。一旦您创建了定制标记库( 简称taglib) ,当您扩展项目或转向另一个项目时您可以重复使用这些标记。您还可以将taglib 传递给其它开发人员,从而他们可以在自己的网站上使用,或者在您Web 应用程序的其它部分使用。 JSTL 的目标是为了简化JSP 页面的设计。对于页面设计人员来说,使用脚本语言(默认值是JA V A 语言)操作动态数据是比较困难的,而采用标签和表达式语言相对容易一些,JSTL 的使用为页面设计人员和程序开发人员的分工协作提供了便利。 一.配置JSTL 包括两个JAR 文件,jstl.jar 和standard.jar 。是什么没有必要管,重在应用(1+1 ?=2 ,我们没有必要深究,只需要知道这么用就行。)。 原文引入: <%@ taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core" %> <%@ taglib prefix="sql" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/sql" %> <%@ taglib prefix="fmt" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/fmt" %>

Java基础教程1.pdf

课程主题实训内容实训目标实训项目Unix/Linux开发环境 Unix开发环境Unix系统原理、Unix开发环境、Unix常用命令。 熟练掌握Unix常用命令;熟练构建Unix下的 Java开发环境。构建商业开发环境 Java语言核心 Java语言基础算法基础、常用数据结构、企业编程规范。 掌握常见的数据结构和实用算法;培养良好的企 业级编程习惯。 算法工具集、CommonsUtils Java面向对象设计面向对象特性:封装、继承、多态等。 掌握面向对象的基本原则以及在编程实践中的 意义;掌握Java面向对象编程基本实现原理。应用程序的发布与打包、猜数字程序的实现、类的抽象、五子棋游戏控制台版本 JDK核心API 语言核心包、异常处理、常用工具包、 集合框架。 熟练掌握JDK核心API编程技术;理解API设 计原则;具备熟练的阅读API文档的能力;为 后续的课程学习打下坚实的语言基础。 Commons-lang包部分功能、 MyArrayList类的实现、表达式解 析、基于加密的消息发送器、升级 版猜数字游戏、简单记事本程序 Oracle数据库技术 SQL语言SQL语句基础和提高、SQL语句调优。 熟练的掌握SQL语句;掌握一定的数据库查询 技巧及SQL语句优化技巧。 SQL高级查询实例Oracle数据库开发 Oracle体体系结构及系统管理、Oracle数据库 高级编程、数据库设计基础。 掌握Oracle体系结构及核心编程技术。Oracle高级编程实例JavaSE高级程序设计 JavaSE核心异常处理、多线程基础、IO系统、网络编程、Swing 组件、JVM性能调优(JVM内存结构剖析、GC基 本原理、GC分析及调优、JVM内存参数优化)、 Java泛型、JDK新特性。 熟练掌握JavaSE核心内容,特别是IO和多线 程;初步具备面向对象设计和编程的能力;掌 握基本的JVM优化策略。 BMP文件处理程序的实现、 URLEncoder功能实现、答题系统、 生产者和消费者问题、多线程文件 下载器 XML XML语法、XML解析(SAX、DOM)、Dom4j组件、 Digester组件。熟练掌握XML语法规则;理解DOM模型;熟悉Java 对XML的各种解析方式。 基于XML数据格式的题库处理程序 JDBC JDBC核心API(Connection、 Statement、 ResultSet)、JDBC 优化(缓存技术、批处理技 术、连接池技术)。 理解JDBC作为规范的设计原则;熟练掌握JDBC API;具备使用JDBC对数据库进行高效访问的 能力。 SQL前端工具、数据采集和存储程 序、数据整合功能程序、项目管理 系统DAO实现 软件工程及OOAD

JSTL的用法

JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。JSTL标签库可分为5类: ?核心标签库 ?I18N格式化标签库 ?SQL标签库 ?XML标签库 ?函数标签库 本章将对这些内容一一讲述。 9.1 核心标签库 JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。使用这些标签能够完成JSP页面的基本功能,减少编码工作。 (1)表达式控制标签:out标签、set标签、remove标签、catch标签。 (2)流程控制标签:if标签、choose标签、when标签、otherwise标签。 (3)循环标签:forEach标签、forTokens标签。 (4)URL操作标签:import标签、url标签、redirect标签。 在JSP页面引入核心标签库的代码为: <%@ taglib prefix="c" uri="https://www.doczj.com/doc/f25314476.html,/jsp/jstl/core" %>

下面将按照功能分类,分别讲解每个标签的功能和使用方式。 9.2.1 表达式控制标签 表达式控制分类中包括4个标签,现在分别介绍它们的功能和语法。 1.标签 【功能】:用来显示数据对象(字符串、表达式)的内容或结果。 在使用Java脚本输出时常使用的方式为: <% out.println(“字符串”)%> <%=表达式%> 在web开发中,为了避免暴露逻辑代码会尽量减少页面中的Java脚本,使用标签就可以实现以上功能。 提示:JSTL的使用是和EL表达式分不开的,EL表达式虽然可以直接将结果返回给页面,但有时得到的结果为空,有特定的结果处理功能,EL的单独使用会降低程序的易读性,建议把EL的结果输入放入标签中。 标签的使用有两种语法格式。 【语法1】:

jstl标签使用

JSTL主要提供了5大类标签库: 1. 核心标签库: 为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,测试条件以及其他操作(如导入和重定向web页面等). 2. 国际化(I18N)标签库: 支持多种语言的引用程序. 3. SQL标签库: 对访问和修改数据库提供标准化支持. 4. XML标签库: 对XML文件处理和操作提供支持,包括XML节点的解析,迭代,基于XML数据的条件评估以及可扩展样式语言转换(Extensible Style Language Transformations , XSLT)的执行. 5. 函数标签库: 通过在EL表达式中调用函数标签库中的函数来实现特定的操作,例如: ${fn:contains(sring,substring)},其功能是判断string字符串中是否包含substring字符串. JSTL标签库使用方法: 标签库URI 前缀使用模式 核心标签库https://www.doczj.com/doc/f25314476.html,/jstl/core c 国际化标签(I18N) https://www.doczj.com/doc/f25314476.html,/jstl/fmt fmt SQL标签库https://www.doczj.com/doc/f25314476.html,/jstl/sql sql XML标签库https://www.doczj.com/doc/f25314476.html,/jstl/xml x 函数标签库https://www.doczj.com/doc/f25314476.html,/jstl/functions fn 核心标签库 核心标签库包括:out , set , remove , catch , if , choose , when 和URL 等. 表达式操作标签: 包括:out , set , remove , catch. out标签: 核心标签库中最为基本的标签就是,他可以在页面中显示一个字符串或者一个EL表达式的值,其功能与JSP中的<%= 表达式%>类似 使用格式如下: 这个标签还可以有一个体,如下: defalut value 这表示当value属性指定的object值为null时,就会显示体中指定的值,也就是default value的值,体中也可以是jsp代码. 中各属性的说明如下: 1. value : 可以指定一个字符串作为输出内容,也可以指定为EL表达式,例如:${3+5}. 2. escapeXml : 类型为boolean , 确定, < , > , & , … , “ 等字符在结构的字符串中是否被转换成字符串实体代码,默认值是true(就是是否按html中的样式进行输出,设置true就是按照字符串原样进行输出,false就是按照html标识符进行输出) 3. default value : 可以是字符串,也可以是一个EL表达式或者jsp表达式,如果属性(value)指定的表达式或者对象为null,那么将输出这个defalut value部分的值. set标签: set标签用来在某个范围(request,session或者application)内设置值,或者设置某个对象的属性值. Set标签使用格式如下: 1. 使用value 属性在一个特定的范围内指定某个变量的值,其使用格式如下:

DEBUG 使用教程 查错 排错 debug 模式 大全

1.项目报错,即eclipse里面项目工程有红叉 eclipse中打开Problems视图,window->show view->other->General->Problems 通过Problems视图中的错误信息,找到错误源 (有可能是java文件, 或者(xml,有可能是 1.xml有错;2.含有错误字符(比如从word复制过来);3.假报 ) buildpath -> eclipse中工程,右键->Build Path-> Configure Build path -> Libraries选项卡 察看 JRE System Library(引入jdk自带包0), Server Runtime (引入jsp/servlet实现包, 比如Apache Tomcat V6.0 (这个是window->preferences->server下定义的Runtime Environment对应) ) Web App Libraries(包含了eclipse中项目工程自带的WEB-INF/lib 下引入的jar包) junit(调试用,不一定需要) User Library(一般eclipse使用者把自己引入的jar包放在一起,定义

一个library,在eclipse中引用) 2.项目启动,控制台报错 察看控制台错误信息 可能错误信息包括: 1.session factory(可能是hibernate的实体类定义错误), 控制台一般看到dao,sessionFactory,hibernate的关键字 eg. Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for name1 in class demo.ssh2.model.Role at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicProperty Accessor.java:306) at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAc cessor.java:299) at org.hibernate.mapping.Property.getGetter(Property.java:294)

JSF入门教程

JSF入门教程1.入门 1.1 简介JSF 1.2 第一个JSF程序 1.3 简单的导航 Navigation 1.4 导航规则设置 1.5 JSF Expression Language 1.6 国际化信息 2. Managed Beans 2.1 Backing Beans 2.2 Beans的配置与设定 2.3 Beans上的List, Map 3. 数据转换与验证 3.1 标准转换器 3.2 自定义转换器 3.3 标准验证器 3.4 自定义验证器 3.5 错误信息处理 3.6 自定义转换, 验证标签 4. 事件处理 4.1 动作事件 4.2 即时事件 4.3 值变事件 4.4 Phase事件

JSF 入门 如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF 将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用自己熟悉的方式来看JSF。 1. 入门 借由以下的几个主题,可以大致了解JSF的轮廓与特性,我们来看看网页设计人员与应用程序设计人员各负责什么。 1.1 简介JSF Web应用程序的开发与传统的单机程序开发在本质上存在着太多的差异,Web 应用程序开发人员至今不可避免的必须处理HTTP的细节,而HTTP无状态的(stateless)本质,与传统应用程序必须维持程序运行过程中的信息有明显的违背,再则Web应用程序面对网站上不同的使用者同时的存取,其执行线程安全问题以及数据验证、转换处理等问题,又是复杂且难以解决的。 另一方面,本质上是静态的HTML与本质上是动态的应用程序又是一项违背,这造成不可避免的,处理网页设计的美术人员与程序设计人员,必须被彼此加入至视图组件中的逻辑互相干扰,即便一些视图呈现逻辑以标签的方式呈现,试图展现对网页设计美术人员的亲切,但它终究必须牵涉到相关的流程逻辑。 有很多方案试着解决种种的困境,而各自的着眼点各不相同,有的从程序设计人员的角度来解决,有的从网页设计人员的角度来解决,各种的框架被提出,所造成的是各种不统一的标签与框架,为了促进产能的集成开发环境(IDE)难以整合这些标签与框架,另一方面,开发人员的学习负担也不断的加重,他们必须一人了解多个角色的工作。 JavaServer Faces的提出在试图解决这个问题,它试图在不同的角度上提供网页设计人员、应用程序设计人员、组件开发人员解决方案,让不同技术的人员可以彼此合作又不互相干扰,它综合了各家厂商现有的技术特点,由Java Community Process(JCP)团队研拟出来的一套标准,并在2004年三月发表了JavaServer Faces 1.0实现成果。 从网页设计人员的角度来看,JavaServer Faces提供了一套像是新版本的HTML 标签,但它不是静态的,而是动态的,可以与后端的动态程序结合,但网页设计人员不需要理会后端的动态部份,网页设计人员甚至不太需要接触JSTL这类的标签,也可以动态的展现数据(像是动态的查询表格内容),JavaServer Faces提供标准的标签,这可以与网页编辑程序结合在一起,另一方面,JavaServer Faces也允许您自定义标签。 从应用程序设计人员的角度来看,JavaServer Faces提供一个与传统应用程序开发相类似的模型(当然因某些本质上的差异,模型还是稍有不同),他们可以基于事件驱动来开发程序,不必关切HTTP的处理细节,如果必须处理一些视觉组件的属性的话,他们也可以直接在整合开发环境上拖拉这些组件,点选设定组件的属性,JavaServer Faces甚至还为应用程序设计人员处理了对象与字符串(HTTP传送本质上就是字符串)间不匹配的转换问题。

相关主题
文本预览
相关文档 最新文档