jsp的C標簽一般使用方法以及js接收servlet中的對象及對象數字

来源:http://www.cnblogs.com/funnyzpc/archive/2017/09/02/7455921.html
-Advertisement-
Play Games

jsp的C標簽一般使用方法以及js接收servlet中的對象及對象數組 由於現流行的javaWeb框架提倡前後端分離,比如在SpringMvc中已經很少寫servlet的一些東西;目前 前端jsp中大多是一些純html和js,很少用到jstl的一堆東西,後端也僅僅處理一些前端的post、get請求或 ...


 jsp的C標簽一般使用方法以及js接收servlet中的對象及對象數組

 

  由於現流行的javaWeb框架提倡前後端分離,比如在SpringMvc中已經很少寫servlet的一些東西;目前 前端jsp中大多是一些純html和js,很少用到jstl的一堆東西,後端也僅僅處理一些前端的post、get請求或頁面跳轉,無須以往繁瑣的xml路徑映射和filter過濾。

  不過有時也會用到servlet作用域中的一些東西,比如某個固定的值、上下文路徑等等~,不過這些東西大多數也僅限於取值而不是設置值(或對象),所以sun給了一個非常簡潔的取值方式:C標簽!

  下麵將簡述下C標簽的一些使用方法,主要是我個人從事javaWeb開放所涉及到的內容,不做多的擴展(◕ܫ◕)=>

在使用之前,頁面命名空間需要先聲明C標簽和jsp的基本聲明 ,這是最基本的,順便說下:如果引用到jar包,也是在這裡聲明的,如下==>

當後端傳給頁面一個單獨的值的時候用${鍵}即可獲取傳入的值(在這裡是stockPrice這個Float值),這個鍵可以是java任何類型(比如常用的List、map、String、Date、Object...等等)=>

 

  

 以上只是單值,如果是對象類型或者Map類型,就需要打點訪問值了,例如後臺是這樣子的:

jsp中在取值的時候就像js中取對象中的值一樣,就像這樣==>

 

 

stockPrice2中的值是個List的時候同js中list值訪問一樣,用中括弧=>

以上取值的方式有仨:[數組下標]、["數組下標"]、.get(下標),需要說明的是下標是不能用單引號引起來的,在一就是取的數組長度如果是動態長度的,上面的這些方式就需要加一層判斷,but~這樣的方式十分之不可取,這時候就需要用到 forEach=>

 

 

使用forEach的時候需要用到forEach標簽,即使數組為空也無需要判斷空值,需要說明的是遍歷的對象放在items中,每個對象中的每個子對象用var中的值代替子對象的整個對象,後面的varStatus這個變數是存的每個變數的狀態,一般也會使用到就是對象所在的下標(需要用index這個變數名稱,並且這個變數名稱是固定的,無須在後端定義),如果需要過濾對象中的某個值,就需要用到if標簽了,這個標簽可以嵌套在迴圈裡面使用也可以單獨使用~=>

        嗯~,需要條件判斷的時候就需要會用到if~else~這樣的條件判斷,在C標簽中,這個判斷需要寫在choose標簽中,可能比較麻煩,這裡只給出代碼樣例=>

<select class="btn col-sm-12"style="font-weight:bold;color:black;pointer-events: stroke;opacity: initial;">
                    <c:if test="${empty main.scoreC}"><option value="">(空)</option></c:if>
                    <c:forEach  items="${scores}"  var="score" >
                        <c:choose>
                               <c:when test="${main.scoreC eq score}">
                                    <option value="${score}" selected="selected">${score}</option>
                                </c:when>
                               <c:otherwise>   
                                    <option value="${score}">${score}</option>
                               </c:otherwise>
                            </c:choose>
                    </c:forEach>
   </select>

如上圖,判斷每個條件需要寫在c:when標簽中(可以有多個此標簽),如果條件都不滿足,則會顯示c:otherwise標簽中的內容,樣例效果自行測試,這裡就不啰嗦啦(o^.^o)~

啊哈~,以上是C標簽常用的一些懂西,哦~ 不好意思,漏了一個(*^▽^*),這個比較特殊:多數人在使用判斷的時候會用到條件是否為空,是否等於某個值:

對於前者,條件一般是這樣寫=>${empty 變數名},這個empty在jsp中是關鍵字,變數名稱一定要避開啊~w(゚Д゚)w

對於後者,寫法一般有兩種=>${變數名A eq 變數名B} 或者 ${變數名A == 變數名B},後者一般做數字或基本類型的判斷,前者一般做對象判斷;別忘了,這個“eq”也是關鍵字o哦~

 

        最後,這次當然是最最後哈( ̄▽ ̄)/,放一個大招,也是我研究了好一會憋出來的;當然,不是噁心便便( ´´ิ∀´ิ` )。。。,先說下摘要吧:一般jsp處理不了的邏輯或者比較麻煩的邏輯需要將servlet作用域中的(List或Map) 放在js中處理,這時就可能面臨一個問題,就是你怎麼能將整個對象放到js變數裡面呢,在這裡可以很自信的Answer你:用fastJson轉字元串啊~ㄟ(◑‿◐ )ㄏ,是不是豁然開朗,哈哈,先拋個磚=>

1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3 <%@ taglib uri="/WEB-INF/tlds/hs.tld" prefix="hs"%>
4 <%@ page import="com.alibaba.fastjson.JSON" %>
1 <script type="text/javascript">
2 <%    Object ob=request.getAttribute("bonusMatrix");    %>
3 //初始化數據    
4 var bonusMatrixs=[];
5 function init(data){
6     bonusMatrixs=data;
7 }
8 init(<%out.println(JSON.toJSONString(ob));%>);
9 </script>

並且~,不需要做json字元串到js對象的轉換就可以直接使用~,有沒有很方便的說└(^o^)┘

啊~,哇哦~已經這個點兒了,要睡覺啦~

 

 

//看到這裡的童鞋,希望他們 ☛熱愛技術,關愛妹紙,關愛單身狗,遠離加班,遠離改需求ㄟ(▔▽▔ㄟ) (╯▔▽▔)╯

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 教學設計: 一、 課程基本情況 1.課程目標 1) 項目開發“通訊錄管理系統”;(分析和維護現有系統) 2)項目開發“農業大棚監控系統”;(自主完成同步項目(1)) 3) 項目開發“餐廳管理系統”;(專用周) WINDOWS基礎及應用技術 WINDOW及WPF標準控制項和組件 資料庫應用項目實踐 數據 ...
  • 回到目錄 在DotNetCore出來之後,同時也使用了quartz進行調度中心的設計,將它做到docker里方便部署,在之前的quartz版本里支持配置文件的方式,而現在不支持了,我們應該去想一下,為什麼不去支持配置文件?當然大叔也為配置文件設計了支持的方式,但我們還是應該想想作者為什麼不去支持配置 ...
  • 參照及推薦博客:伍華聰 http://www.cnblogs.com/wuhuacong/archive/2009/07/07/1518346.html http://www.cnblogs.com/wuhuacong/p/3560685.html 這篇文章介紹了作者軟體的開發及成長歷程,作者在十幾 ...
  • 從網上搜索一大堆,套路幾乎相同,但自己就是不行,怎麼也不行,為什麼不行呢?不行的話別人肯定不來坑博友了呀。然後放了一會,去拿下午茶回來,再次來看,恍然大悟,What?這麼簡單。 一開始代碼如下: helper.GetConnectionString(schoolStr);//獲取當前連接字元串 us ...
  • ggplot2是用於繪圖的R語言擴展包。圖形組件通過“+”符號, 以圖層(layer)的方式來完成圖形語法疊加,構成最終的繪圖, 每個圖層中的圖形組件可以分別設定數據、映射或其他相關參數, 因此組件之間具有相對獨立性的,可以單獨對圖層進行修改。 一、ggplot2基本語法 表示映射數據的標度。aes ...
  • 在第一篇和第二篇文章中寫的編寫Django視圖時,使用的都是基於函數的方法,並且每個視圖函數之前都會加一個django-rest-framework帶的裝飾器@api_view。然後在第三篇文章,我們就開始把基於函數的視圖改成了基於類的視圖,然後發現這樣做視圖部分減少了很多代碼量。 在這一篇文章中,... ...
  • 怎麼學習Java,這是很多新手經常會問我的問題,現在我簡單描述下一個Java初學者到就業要學到的一些東西: 首先要明白Java體系設計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我們經常說到的JDK,就主要指的 ...
  • 一、字元編碼簡史: 美國:1963年 ASCII (包含127個字元 占1個位元組) 中國:1980年 GB2312 (收錄7445個漢字,包括6763個漢字和682個其它符號) 1993年 GB13000 (收錄20902個漢字) 1995年 GBK1.0 (收錄 21003個漢字) 2000年 G ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...