您的位置:首页 > 其它

Freemarker中页面直接可以运用的内置对象

2016-05-20 15:37 344 查看
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

freemarker中页面直接可以使用的内置对象有以下几种:

1. Request:用于获取Request对象中的attribute对象。

用法:${Request["atrributeName"]},${Request.atrributeName}这样是直接在页面输出属性值,相当于request.getAtrribute("atrributeName");如果要对这个值进行判断使用如下格式:<#if
Request["atrributeName"]="edit">

对于list等复杂的属性值,也可以${Request["atrributeName"]}、${Request.atrributeName}两种方式联合使用,例如:

@RequestMapping("cashierSum")
public ModelAndView cashierSum(HttpServletRequest request,HttpSession session) {
ModelAndView mv = new ModelAndView("/report/cashierSumList");
String substoreid = String.valueOf(session.getAttribute("substoreid"));
String startDate = request.getParameter("start_date");
String endDate = request.getParameter("end_date");
Map<String, Object> params = new HashMap<String, Object>();
params.put("startDate", startDate);
params.put("endDate", endDate);
params.put("substoreid", substoreid);
List<Map<String, Object>> payClasses=this.reportService.getAllPayClass(substoreid);
mv.addObject("payClasses", payClasses);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
if (request.getParameter("searchFlag") != null) {
list = this.reportService.getCashierSumList(params);// 收银报表列表
mv.addObject("list", list);
}
return mv;
}


前端页面显示:

<#if list ??>
<#list list as tmp>
<tr>
<td>${tmp_index+1}</td>
<td>${(tmp.the_date?string("yyyy-MM-dd"))!}</td>
<td>${tmp.am_name}</td>
<td>${tmp.the_man}</td>
<td>${tmp.user_name!}</td>
<#if payClasses ??>
<#list payClasses as tmp2>
<#assign name="payName${tmp2_index}"/>
<td><span style="color:#ff0000;">${Request.list[tmp_index][name]}</span></td>
</#list>
</#if>
</tr>
</#list>
</#if>

2. Session:用于获取Session对象中的attribute对象。

用法:用法参照Request的用法。

3. Application:用于获取Application(ServletContext)对象中的attribute对象。

用法:用法参照Request的用法。

4. RequestParameters:用于获取Request对象的parameter参数(浏览器端发送的请求数据)。

用法:${RequestParameters["atrributeName"]}等同于request.getParameter("atrributeName");

5. Parameters:属性获取,依次从RequestParameters、Request、Session、Application对象中获取对应属性参数,一旦获取,则不再向下查找。

用法:${Parameters["method"]}
但是经测试,程序直接抛错!!!不知是没有这个内置对象还是什么原因???
The problematic instruction:
----------
==> ${Parameters["method"]} [on line 134, column 61 in report/cashierSumList.html]
----------

Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression Parameters is undefined on line 134, column 63 in report/cashierSumList.html.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: