⑴ 用jstl表達式怎麼將在jsp頁面取出的字元串轉換成整型數據
不清楚···
⑵ 學會怎樣使用Jsp 內置標簽,jstl標簽庫及自定義標簽
學會怎樣使用Jsp 內置標簽,jstl標簽庫及自定義標簽
1
jsp自定義標簽需要引入兩個 分別是
javax.servlet.jsp.jarjavax.servlet.jar
2
建立tld文件,建議目錄為WEB-INF下,tld文件結構為下圖,uri為整個標簽庫的名稱,可以理解為java類,每一個tag分支,可以理解為java類中的每一個方法,我們在調用jsp自定義標簽的時候就和調用java類一樣,通過類找方法。tag分支重點要講tag-class,該屬性為該標簽方法所指向的java類。attribute為參數,相信屬性看步驟三附圖。
3
關於tld文件屬性的說明,可以參考下圖
4
將tld文件引入web.xml中,建議名稱與tld文件標簽庫名稱一致
5
編寫jsp自定義標簽類,該類繼承TagSupport類,我們需要做的就是重寫doStartTag,我們可以通過JspWriter將後台處理的東西直接輸出到jsp頁面。當然了,輸出的內容在實際操作中肯定經過了非常復雜的邏輯。
6
頁面調用,首先需要引入標簽,<%@ taglib uri="option" prefix="option"%> option為標簽名 定義在tld文件中,引用之後就可以在頁面調用自定義標簽了,簡單的一行代碼。即可實現一個grid的輸出,且可以重復利用。
⑶ JSP 中 JSTL<c:forEach 標簽的用法
<c:forEach>標簽的作用就是迭代輸出標簽內部的內容。它既可以進行固定次數的迭代輸出,也可以依據集合中對象的個數來決定迭代的次數。
<c:forEach>標簽,需要與el表達式聯合使用
<c:forEach>標簽的語法定義如下所示。
<c:forEach var="每個變數名字" items="要迭代的list" varStatus="每個對象的狀態"
begin="循環從哪兒開始" end="循環到哪兒結束" step="循環的步長">
循環要輸出的東西
</c:forEach>
<c:forEach>標簽具有以下一些屬性:
var:迭代參數的名稱。在迭代體中可以使用的變數的名稱,用來表示每一個迭代變數。類型為String。
items:要進行迭代的集合。對於它所支持的類型將在下面進行講解。
varStatus:迭代變數的名稱,用來表示迭代的狀態,可以訪問到迭代自身的信息。
begin:如果指定了items,那麼迭代就從items[begin]開始進行迭代;如果沒有指定items,那麼就從begin開始迭代。它的類型為整數。
end:如果指定了items,那麼就在items[end]結束迭代;如果沒有指定items,那麼就在end結束迭代。它的類型也為整數。
step:迭代的步長。
<c:forEach>標簽的items屬性支持Java平台所提供的所有標准集合類型。此外,您可以使用該操作來迭代數組(包括基本類型數組)中的元素。
⑷ java獲取當前瀏覽器地址欄中的參數
如果是在jsp 頁面里 直接用jstl 標簽即可獲得 ${param.參數名}
如果是java 文件 通過request.getparameter(參數名)
⑸ 關於EL表達式中有沒有substring方法
可以截取,用fn函數:
下面是JSTL中自帶的方法列表以及其描述
函數名 函數說明 使用舉例
fn:contains 判斷字元串是否包含另外一個字元串 <c:if test="${fn:contains(name, searchString)}">
fn:containsIgnoreCase 判斷字元串是否包含另外一個字元串(大小寫無關) <c:if test="${fn:containsIgnoreCase(name, searchString)}">
fn:endsWith 判斷字元串是否以另外字元串結束 <c:if test="${fn:endsWith(filename, ".txt")}">
fn:escapeXml 把一些字元轉成XML表示,例如 <字元應該轉為< ${fn:escapeXml(param:info)}
fn:indexOf 子字元串在母字元串中出現的位置 ${fn:indexOf(name, "-")}
fn:join 將數組中的數據聯合成一個新字元串,並使用指定字元格開 ${fn:join(array, ";")}
fn:length 獲取字元串的長度,或者數組的大小 ${fn:length(shoppingCart.procts)}
fn:replace 替換字元串中指定的字元 ${fn:replace(text, "-", "")}
fn:split 把字元串按照指定字元切分 ${fn:split(customerNames, ";")}
fn:startsWith 判斷字元串是否以某個子串開始 <c:if test="${fn:startsWith(proct.id, "100-")}">
fn:substring 獲取子串 ${fn:substring(zip, 6, -1)}
fn:substringAfter 獲取從某個字元所在位置開始的子串
${fn:substringAfter(zip, "-")}
fn:substringBefore 獲取從開始到某個字元所在位置的子串 ${fn:substringBefore(zip, "-")}
fn:toLowerCase 轉為小寫 ${fn.toLowerCase(proct.name)}
fn:toUpperCase 轉為大寫字元 ${fn.UpperCase(proct.name)}
fn:trim 去除字元串前後的空格 ${fn.trim(name)}
函數
描述
fn:contains(string, substring)
如果參數string中包含參數substring,返回true
fn:containsIgnoreCase(string, substring)
如果參數string中包含參數substring(忽略大小寫),返回true
fn:endsWith(string, suffix)
如果參數 string 以參數suffix結尾,返回true
fn:escapeXml(string)
將有特殊意義的XML (和HTML)轉換為對應的XML character entity code,並返回
fn:indexOf(string, substring)
返回參數substring在參數string中第一次出現的位置
fn:join(array, separator)
將一個給定的數組array用給定的間隔符separator串在一起,組成一個新的字元串並返回。
fn:length(item)
返回參數item中包含元素的數量。參數Item類型是數組、collection或者String。如果是String類型,返回值是String中的字元數。
fn:replace(string, before, after)
返回一個String對象。用參數after字元串替換參數string中所有出現參數before字元串的地方,並返回替換後的結果
fn:split(string, separator)
返回一個數組,以參數separator 為分割符分割參數string,分割後的每一部分就是數組的一個元素
fn:startsWith(string, prefix)
如果參數string以參數prefix開頭,返回true
fn:substring(string, begin, end)
返回參數string部分字元串, 從參數begin開始到參數end位置,包括end位置的字元
fn:substringAfter(string, substring)
返回參數substring在參數string中後面的那一部分字元串
fn:substringBefore(string, substring)
返回參數substring在參數string中前面的那一部分字元串
fn:toLowerCase(string)
將參數string所有的字元變為小寫,並將其返回
fn:toUpperCase(string)
將參數string所有的字元變為大寫,並將其返回
fn:trim(string)
去除參數string 首尾的空格,並將其返回
⑹ jstl 跟freemarker 有什麼區別
jstl 跟freemarker 的區別如下:
一、jstl
JSTL(JSP Standard Tag Library,JSP標准標簽庫)是一個不斷完善的開放源代碼的JSP標簽庫,是由apache的jakarta小組來維護的。
1、使用條件
jstl帶來的優雅編程體驗人所皆知,在java社區蒸蒸日上的今天使用jstl已無需考慮很多問題,我們可以用myeclipse等java集成開發環境輕松搭建一個jstl的web項目。即便有了myeclipse這么得力的工具幫我們快速開發web項目,但是有一些知識我們必須了解的 ---- 那就是jstl與servlet版本,以及jsp版本之間的依賴關系。
2、優點
在應用程序伺服器之間提供了一致的介面,最大程度地提高了WEB應用在各應用伺服器之間的移植。
簡化了JSP和WEB應用程序的開發。
二、freemarker
FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文本輸出。FreeMarker與Web容器無關,即在Web運行時,它並不知道Servlet或HTTP。它不僅可以用作表現層的實現技術,而且還可以用於生成XML,JSP或Java 等。
1、特性
——通用
能夠生成各種文本:HTML、XML、RTF、Java源代碼等等。
易於嵌入到產品中:輕量級;不需要Servlet環境。
插件式模板載入器:可以從任何源載入模板,如本地文件、資料庫等等。
可以按所需生成文本:保存到本地文件;作為Email發送;從Web應用程序發送它返回給Web瀏覽器。
——強大的模板語言
所有常用的指令:include、if/elseif/else、循環結構。
在模板中創建和改變變數。
幾乎在任何地方都可以使用復雜表達式來指定值。
命名的宏,可以具有位置參數和嵌套內容。
名字空間有助於建立和維護可重用的宏庫,或者將一個大工程分成模塊,而不必擔心名字沖突。
輸出轉換塊:在嵌套模板片段生成輸出時,轉換HTML轉義、壓縮、語法高亮等等;可以定義自己的轉換。
——通用數據模型
FreeMarker不是直接反射到Java對象,Java對象通過插件式對象封裝,以變數方式在模板中顯示。
可以使用抽象(介面)方式表示對象(JavaBean、XML文檔、SQL查詢結果集等等),告訴模板開發者使用。方法,使其不受技術細節的打擾。
為Web准備
在模板語言中內建處理典型Web相關任務(如HTML轉義)的結構。
能夠集成到Model2 Web應用框架中作為JSP的替代。
支持JSP標記庫。
為MVC模式設計:分離可視化設計和應用程序邏輯;分離頁面設計員和程序員。
2、簡介
FreeMarker允許Java servlet保持圖形設計同應用程序邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的數據動態地生成 HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態HTML頁面的速度。雖然FreeMarker具有一些編程的能力,但通常由Java程序准備要顯示的數據,由FreeMarker生成頁面,通過模板顯示准備的數據。