本文目录一览:
- 1、Java项目中ftl和jsp可以同时并存么,属于功能模块的
- 2、java项目中怎么实现jsp页面Excel模板下载并弹框。
- 3、jsp 框架是什么
- 4、JSP中怎么使用java 的模板
- 5、用java开发中大型网站,一般都是用模板引擎么?比如XLTemplate、Velocity、FreeMarker这些。
Java项目中ftl和jsp可以同时并存么,属于功能模块的
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"/
java项目中怎么实现jsp页面Excel模板下载并弹框。
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 框架是什么
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服务器页面)
JSP中怎么使用java 的模板
您好!
您想直接传一个User类进去的话那样写是不对的,List是集合。
这样写,您能看懂么?
Public ListUser getList(User user){
//里面写内容
}
这样写的话是返回一个User类型的集合
用java开发中大型网站,一般都是用模板引擎么?比如XLTemplate、Velocity、FreeMarker这些。
这个看你网站功能和性能需求了。网上有很多关于这些技术区别的,你可以去看一看。
引用篇文章给你:
浅谈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分离