JSTL和EL表達(dá)式

EL表達(dá)式

表達(dá)式語(yǔ)言(Expression Language)审孽,或稱EL表達(dá)式钳吟,簡(jiǎn)稱EL,是Java中的一種特殊的通用編程語(yǔ)言鸳址,借鑒于JavaScriptXPath。主要作用是在Java Web應(yīng)用程序嵌入到網(wǎng)頁(yè)(如JSP)中泉懦,用以訪問頁(yè)面的上下文以及不同作用域中的對(duì)象 稿黍,取得對(duì)象屬性的值,或執(zhí)行簡(jiǎn)單的運(yùn)算或判斷操作崩哩。EL在得到某個(gè)數(shù)據(jù)時(shí)巡球,會(huì)自動(dòng)進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換言沐。

表達(dá)式語(yǔ)法

${變量名}

  • 使用時(shí)需要導(dǎo)入外部包,在tomcat服務(wù)器上找到此包辕漂,并導(dǎo)入呢灶。
    apache-tomcat-8.5.34/lib/servlet-api.jar
  • 案例從1.jsp 頁(yè)面提交,通過servlet跳轉(zhuǎn)到showEL.jsp頁(yè)面完成賦值的輸出
  • 1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表單提交</title>
</head>
<body>
    <form action="<%=request.getContextPath() %>/ELServlet" method="post">
        用戶名:<input type="text" name="username"><br>
        年齡: <input type="text" name="age"><br>
        <input type="submit" value="提交"> 
    </form>

    
</body>
</html>
  • ELServlet
package com.alan.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/ELServlet")
public class ELServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1钉嘹、首先獲取username和age的屬性值
        String username = request.getParameter("username");
        String age = request.getParameter("age");
        //2鸯乃、將其保存到request域中
        request.setAttribute("username", username);
        request.setAttribute("age", age);
        //3、跳轉(zhuǎn)到showEL.jsp頁(yè)面跋涣,我們通過EL表達(dá)式取出request域中的值
        request.getRequestDispatcher("/showEL.jsp").forward(request, response);
        

    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);

    }

}
  • showEL.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>提交后頁(yè)面</title>
</head>
<body>
        用戶名:${username} <br>
        年齡:${age} 

</body>
</html>

JSTL

JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)JSP Standard Tag Library)是Java EE網(wǎng)絡(luò)應(yīng)用程序開發(fā)平臺(tái)的組成部分缨睡。它在JSP規(guī)范的基礎(chǔ)上,擴(kuò)充了一個(gè)JSP的標(biāo)簽庫(kù)來(lái)完成一些通用任務(wù)陈辱,比如XML數(shù)據(jù)處理奖年、條件執(zhí)行、數(shù)據(jù)庫(kù)訪問沛贪、循環(huán)和國(guó)際化陋守。

JSTL標(biāo)簽介紹

  • 通用標(biāo)簽 set out remove
  • 條件標(biāo)簽 if choose
  • 迭代標(biāo)簽 forEach
  • 案例1
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>


    <!-- set、out利赋、remove標(biāo)簽 -->
    <!-- set標(biāo)簽主要往指定的域中存放數(shù)據(jù) -->
    <c:set var="user" value="張三" scope="request"></c:set>
    <!-- 將數(shù)據(jù)打印輸出 -->
    <c:out value="${user}"></c:out>
    <!-- remove標(biāo)簽 -->
    <c:remove var="user" scope="request" />
    <c:out value="${user}"></c:out>
    <!-- 
    if標(biāo)簽
        test:按判斷的條件,如果條件為true,執(zhí)行標(biāo)簽體中的內(nèi)容
        
     -->
    <c:set var="age" value="12" scope="request"></c:set>
    <c:if test="${age==11}">
        您的年齡為12歲
    </c:if>
    <hr>
    <!-- choose標(biāo)簽 -->
    <c:set var="age1" value="13" scope="request"></c:set>
    <c:choose>
        <c:when test="${age1==12}">
                您的年齡為12歲
        </c:when>
        <c:otherwise>
                您的年齡不是12歲
        </c:otherwise>
    </c:choose>



</body>
</html>
  • 案例2 foreach
  • servelet
package com.alan.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;




@WebServlet("/JSTLELServlet")
public class JSTLELServlet extends HttpServlet {


    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        //1水评、將輸入存入List中
        Map<String,Object> dataMap1 =  new HashMap<>();
        dataMap1.put("shopName", "聯(lián)想筆記本");
        dataMap1.put("address", "北京");
        dataMap1.put("price", "4999");
        Map<String,Object> dataMap2 =  new HashMap<>();
        dataMap2.put("shopName", "神州筆記本");
        dataMap2.put("address", "南京");
        dataMap2.put("price", "3999");
        Map<String,Object> dataMap3 =  new HashMap<>();
        dataMap3.put("shopName", "小米筆記本");
        dataMap3.put("address", "深圳");
        dataMap3.put("price", "5999");
        
        List<Map<String,Object>> dataList = new ArrayList<>();
        dataList.add(dataMap1);
        dataList.add(dataMap2);
        dataList.add(dataMap3);
        
        //2、將List賦值到request的作用域中
        request.setAttribute("list", dataList);
        //3媚送、在jsp頁(yè)面取出List
        request.getRequestDispatcher("/2.jsp").forward(request, response);
    
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}
  • jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>通過JSTL+EL表達(dá)式迭代List集合</title>
</head>
<body>

    <table border="1" cellspacing="0" >
        <tr>
            <td>商品名稱</td>
            <td>產(chǎn)地</td>
            <td>價(jià)格</td>
        </tr>
        <c:forEach items="${list}" var="map">
            <tr>
                <td>${map.shopName }</td>
                <td>${map.address }</td>
                <td>${map.price}</td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末中燥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子塘偎,更是在濱河造成了極大的恐慌疗涉,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吟秩,死亡現(xiàn)場(chǎng)離奇詭異咱扣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涵防,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門闹伪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人武学,你說(shuō)我怎么就攤上這事祭往÷滓猓” “怎么了火窒?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)驮肉。 經(jīng)常有香客問我熏矿,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任票编,我火速辦了婚禮褪储,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慧域。我一直安慰自己鲤竹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布昔榴。 她就那樣靜靜地躺著辛藻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪互订。 梳的紋絲不亂的頭發(fā)上吱肌,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音仰禽,去河邊找鬼氮墨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吐葵,可吹牛的內(nèi)容都是我干的规揪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼折联,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼粒褒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起诚镰,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤奕坟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后清笨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體月杉,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年抠艾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苛萎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡检号,死狀恐怖腌歉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情齐苛,我是刑警寧澤翘盖,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站凹蜂,受9級(jí)特大地震影響馍驯,放射性物質(zhì)發(fā)生泄漏阁危。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一汰瘫、第九天 我趴在偏房一處隱蔽的房頂上張望狂打。 院中可真熱鬧,春花似錦混弥、人聲如沸趴乡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)浙宜。三九已至,卻和暖如春蛹磺,著一層夾襖步出監(jiān)牢的瞬間粟瞬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工萤捆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留裙品,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓俗或,卻偏偏與公主長(zhǎng)得像市怎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辛慰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一帅腌、jsp介紹 jsp作用jsp全稱java server pages(java服務(wù)器頁(yè)面),本質(zhì)是一個(gè)servl...
    圣賢與無(wú)賴閱讀 1,248評(píng)論 0 14
  • 一驰弄、EL表達(dá)式簡(jiǎn)介 1.EL全名為Expression Language。主要作用: 獲取數(shù)據(jù):EL表達(dá)式主要用于...
    yjaal閱讀 3,880評(píng)論 2 28
  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件速客,本...
    java日記閱讀 3,442評(píng)論 0 13
  • 我們圍坐在一起戚篙,勸說(shuō)一個(gè)女生A重新去追一個(gè)暗戀了很多年的男孩子。她無(wú)論如何都不愿意溺职。 “他比高中更帥了岔擂!而且學(xué)業(yè)有...
    Dolores112閱讀 398評(píng)論 0 0
  • 本來(lái)還是相對(duì)比較有進(jìn)步的一周:早上日出的時(shí)候起床,晚上夕陽(yáng)的時(shí)候泡腳浪耘。白天時(shí)間的應(yīng)用也比較合理乱灵,是一個(gè)相對(duì)輕松而快...
    Janna_A5_易效能203閱讀 158評(píng)論 0 1