- 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