java項目jsp模板(jsp頁面模板)

  • 1、Java項目中ftl和jsp可以同時並存么,屬於功能模塊的
  • 2、java項目中怎麼實現jsp頁面Excel模板下載並彈框。
  • 3、jsp 框架是什麼
  • 4、JSP中怎麼使用java 的模板
  • 5、用java開發中大型網站,一般都是用模板引擎么?比如XLTemplate、Velocity、FreeMarker這些。

ftl不可以和jsp共存的,二者具有轉化關係。

freemarker(FTL)常見語法(JSP中的代碼轉化為ftl代碼) 舉例如下:

1、引入公共頁面#include “params.ftl”

2、判斷是否為空:#if (resultContext.pagination.resultList)?? resultContext.pagination.resultList?size gt 0

3、集合遍歷:

#list list as a

${a_index+1}

/#list

4、訪問Java類中的靜態方法

#if st == stack.findValue(“@com.test.bo.SkuTag@NEW”)#elseif st == stack.findValue(“@com.test.bo.SkuTag@SPECIAL”)

5、訪問Request對象

${Request.effectType.infoName!” } 其他域對象比如:Session對象 貌似還是是${Session.*****}

6、使用其他標籤如struts2標籤:

引入tld:#assign ts=JspTaglibs[“/skw-tags”] / 使用: @ts.productPrice loginUrl=”${ctxtPath}/login_jsp.html”/

controller層關鍵代碼:

@RequestMapping(value = “/excel”)

public ModelAndView exportExcel() throws Exception {

ModelAndView mv = new ModelAndView();

PageData pd = new PageData();

pd = this.getPageData();

MapString, Object dataMap = new HashMapString, Object();

ListString titles = new ArrayListString();

titles.add(“辦事處”); // 1

titles.add(“當日新增掃碼商戶(個)”); // 2

titles.add(“當日交易筆數(筆)”); // 3

titles.add(“當日交易金額”); // 4

titles.add(“當日收益”); // 5

titles.add(“累計新增掃碼商戶(個)”); // 6

titles.add(“累計交易筆數(筆)”); // 7

titles.add(“累計交易金額”); // 8

titles.add(“累計收益”); // 9

dataMap.put(“titles”, titles);

Page page = new Page();

page.setPd(pd);

ListPageData varOList = agencyService.list(page);

ListPageData varList = new ArrayListPageData();

for (int i = 0; i  varOList.size(); i++) {

PageData vpd = new PageData();

vpd.put(“var1”, varOList.get(i).get(“AGENCYNAME”).toString()); // 1

vpd.put(“var2”, varOList.get(i).get(“TODAYINSTALL”).toString()); // 2

vpd.put(“var3”, varOList.get(i).get(“TODAYTRANS”).toString()); // 3

vpd.put(“var4”, varOList.get(i).get(“TODAYPRICE”).toString()); // 4

vpd.put(“var5”, varOList.get(i).get(“TODAYPAYMENT”).toString()); // 5

vpd.put(“var6”, varOList.get(i).get(“TOTALINSTALL”).toString()); // 6

vpd.put(“var7”, varOList.get(i).get(“TOTALTRANS”).toString()); // 7

vpd.put(“var8”, varOList.get(i).get(“TOTALPRICE”).toString()); // 8

vpd.put(“var9”, varOList.get(i).get(“TOTALPAYMENT”).toString()); // 9

varList.add(vpd);

}

dataMap.put(“varList”, varList);

ObjectExcelView erv = new ObjectExcelView();

mv = new ModelAndView(erv, dataMap);

return mv;

}

POI生成EXCEL關鍵代碼:

public class ObjectExcelView extends AbstractExcelView{

@SuppressWarnings(“deprecation”)

@Override

protected void buildExcelDocument(MapString, Object model,

HSSFWorkbook workbook, HttpServletRequest request,

HttpServletResponse response) throws Exception {

// TODO Auto-generated method stub

Date date = new Date();

String filename = Tools.date2Str(date, “yyyyMMddHHmmss”);

HSSFSheet sheet;

HSSFCell cell;

response.setContentType(“application/octet-stream”);

response.setHeader(“Content-Disposition”, “attachment;filename=”+filename+”.xls”);

sheet = workbook.createSheet(“sheet1”);

ListString titles = (ListString) model.get(“titles”);

int len = titles.size();

HSSFCellStyle headerStyle = workbook.createCellStyle(); //標題樣式

headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

HSSFFont headerFont = workbook.createFont(); //標題字體

headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

headerFont.setFontHeightInPoints((short)11);

headerStyle.setFont(headerFont);

short width = 20,height=25*20;

sheet.setDefaultColumnWidth(width);

for(int i=0; ilen; i++){ //設置標題

String title = titles.get(i);

cell = getCell(sheet, 0, i);

cell.setCellStyle(headerStyle);

setText(cell,title);

}

sheet.getRow(0).setHeight(height);

HSSFCellStyle contentStyle = workbook.createCellStyle(); //內容樣式

contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

ListPageData varList = (ListPageData) model.get(“varList”);

int varCount = varList.size();

for(int i=0; ivarCount; i++){

PageData vpd = varList.get(i);

for(int j=0;jlen;j++){

String varstr = vpd.getString(“var”+(j+1)) != null ? vpd.getString(“var”+(j+1)) : “”;

cell = getCell(sheet, i+1, j);

cell.setCellStyle(contentStyle);

setText(cell,varstr);

}

}

}

}

JSP全名為Java Server Pages,中文名叫java伺服器頁面,其根本是一個簡化的Servlet設計,它 是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。

JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標準通用標記語言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件。

後綴名為(*.jsp)。 用JSP開發的Web應用是跨平台的,既能在Linux下運行,也能在其他操作系統上運行。

擴展資料:

JSP技術特點:

1、能以模板化的方式簡單、高效地添加動態網頁內容。

2、可利用JavaBean和標籤庫技術復用常用的功能代碼(設計好的組件容易實現重複利用,減少重複勞動)。標籤庫不僅帶有通用的內置標籤(JSTL),而且支持可擴展功能的自定義標籤。

3、有良好的工具支持。

4、繼承了Java語言的相對易用性。

5、繼承了Java的跨平台優勢,實現「一次編寫,處處運行」。因為支持Java及其相關技術的開發平台多,網站開發人員可以選擇在最適合自己的系統平台上進行JSP開發;不同環境下開發的JSP項目,在所有客戶端上都能順利訪問。

參考資料來源:百度百科-JSP (java伺服器頁面)

您好!

您想直接傳一個User類進去的話那樣寫是不對的,List是集合。

這樣寫,您能看懂么?

Public ListUser getList(User user){

//裡面寫內容

}

這樣寫的話是返回一個User類型的集合

這個看你網站功能和性能需求了。網上有很多關於這些技術區別的,你可以去看一看。

引用篇文章給你:

淺談jsp、freemarker、velocity區別

作者:浮雲中的毛驢

以前做web開發頁面層用的基本就是就是,最近公司java項目頁面層用的技術是velocity。聽說jsp要淘汰,也不知道是真是假,但本人還是比較喜歡jsp的,下面是網上查找的javaweb項目頁面3種技術的區別。

在java領域,表現層技術主要有三種:jsp、freemarker、velocity。

jsp是大家最熟悉的技術

優點:

1、功能強大,可以寫java代碼

2、支持jsp標籤(jsp tag)

3、支持表達式語言(el)

4、官方標準,用戶群廣,豐富的第三方jsp標籤庫

5、性能良好。jsp編譯成class文件執行,有很好的性能表現

缺點:

jsp沒有明顯缺點,非要挑點骨頭那就是,由於可以編寫java代碼,如使用不當容易破壞mvc結構。

velocity是較早出現的用於代替jsp的模板語言

優點:

1、不能編寫java代碼,可以實現嚴格的mvc分離

2、性能良好,據說比jsp性能還要好些

3、使用表達式語言,據說jsp的表達式語言就是學velocity的

缺點:

1、不是官方標準

2、用戶群體和第三方標籤庫沒有jsp多。

3、對jsp標籤支持不夠好

freemarker

優點:

1、不能編寫java代碼,可以實現嚴格的mvc分離

2、性能非常不錯

3、對jsp標籤支持良好

4、內置大量常用功能,使用非常方便

5、宏定義(類似jsp標籤)非常方便

6、使用表達式語言

缺點:

1、不是官方標準

2、用戶群體和第三方標籤庫沒有jsp多

選擇freemarker的原因:

1、性能。velocity應該是最好的,其次是jsp,普通的頁面freemarker性能最差(雖然只是幾毫秒到十幾毫秒的差距)。但是在複雜頁面上(包含大量判斷、日期金額格式化)的頁面上,freemarker的性能比使用tag和el的jsp好。

2、宏定義比jsp tag方便

3、內置大量常用功能。比如html過濾,日期金額格式化等等,使用非常方便

4、支持jsp標籤

5、可以實現嚴格的mvc分離

原創文章,作者:N1IEP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126217.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
N1IEP的頭像N1IEP
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • 掌握magic-api item.import,為你的項目注入靈魂

    你是否曾經想要導入一個模塊,但卻不知道如何實現?又或者,你是否在使用magic-api時遇到了無法導入的問題?那麼,你來到了正確的地方。在本文中,我們將詳細闡述magic-api的…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論