[Freemarker] - 使用struts的component调用freemarker的ftl模板方法
struts中的component标签,可以用来调用freemarker的ftl模板文件,使用component标签传参可以这样写:
使用property方式写法:
<s:component template="gridComponent.ftl" templateDir="/WEB-INF/template">
<s:param name="grid" value="userss"></s:param>
</s:component>
使用request的get/set attribute方法的写法:
<s:component template="gridComponent.ftl" templateDir="/WEB-INF/template">
<s:param name="grid" value="#request.users"></s:param>
</s:component>
使用ftl读参数的方法:
<#assign s=JspTaglibs["/struts-tags"] />
<#assign req = parameters.grid />
<#list req as item>
${item["userName"]}
</#list>
普通的struts action:
package com.obs.actions.admin; import java.util.List; import org.apache.struts2.ServletActionContext;
import org.springframework.stereotype.Controller; import com.obs.actions.BaseAdminActionSupport;
import com.obs.actions.bean.User;
import com.obs.util.Common; @Controller
@SuppressWarnings("serial")
/*@Namespace("/admin")
@Results({
@Result(name="success", location="/WEB-INF/view/admin/user.jsp")
})*/
public class UserAction extends BaseAdminActionSupport { private List<User> userss; public List<User> getUserss() {
return userss;
} public void setUserss(List<User> userss) {
this.userss = userss;
} /**
* 页面默认执行action
*/
@Override
public String execute() throws Exception {
// 取得所有用户
List<com.obs.service.bean.User> userList = super.userService.findUsers();
// 复制bean
List<User> users = Common.copyProperties(userList, User.class);
userss = users;
// 将action bean设置到页面
ServletActionContext.getRequest().setAttribute("users", users); return SUCCESS;
} }
userss是property,users是request的attribute.
ftl文件需要在/WEB-INF目录下新建文件夹:/template/simple
把gridComponent.ftl放在这。不然会报错。
需要修改这个template路径的话,修改struts.xml的这个位置:
<constant name="struts.ui.theme" value="simple" />
[Freemarker] - 使用struts的component调用freemarker的ftl模板方法的更多相关文章
- Spring mvc 中使用ftl引用共通文件出错 FreeMarker template error: Error reading included file "/WEB-INF/ftl/common/errormessage.ftl"
初次接触spring mvc,想做一个小的练习项目,结果在ftl文件中引用其它的共通ftl文件时出错.
- 用Main方法调用freemarker生成文件
MyGenerator.java package com.comp.common; import java.io.BufferedWriter; import java.io.File; import ...
- 内嵌的Component调用外部的方法
如果一个内嵌的Component控件需要调用外部定义的方法,用outerDocument.方法名来调用,前提是该方法是public的.如:<mx:DataGridColumn headerTex ...
- JAVA用freemarker生成复杂Excel。(freemarker)
在生成Excel的时候,大多时候都是使用poi,jxl等进行的,但是对于复杂的Excel来说,这个工作量是非常的大的,而且,对于我这么懒的人来说,这是相当痛苦的一件事情,所以,我不得不找找有没有简单一 ...
- freemarker 嵌套循环 (导出word时,修改ftl模板)
1.循环 (循环输出reportList列表的每行的姓名) <#list reportList as report> ${report.name} </$list> 2.嵌套循 ...
- FreeMarker调用Java静态方法以及静态变量的方法
这里介绍下在类似 Spring+FreeMarker 的架构中如何在FreeMarker中访问Java中的静态方法以及静态变量. 一.首先为了方便以及可复用我们创建一个工具类 /** * FreeMa ...
- FreeMarker教程
一.什么是模板引擎,为什么要用模板引擎 在B/S程式设计中,常常有美工和程序员二个角色,他们具有不同专业技能:美工专注于表现——创建页面.风格.布局.效果等等可视元素:而程序员则忙于创建程式的商业流程 ...
- freemarker自定义标签(与java合用)
自定义类继承FreemarkerManager类,重写protected Configuration createConfiguration(ServletContext servletContext ...
- FreeMarker的基础语法
FreeMarker语言 FreeMarker语言概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写. FreeMarker被设计用来生成HTML Web ...
随机推荐
- @keyframes
通过 @keyframes 规则,您能够创建动画. @keyframes movelike{ from{right:1205px;} to{right:0px}} 创建动画的原理是,将一套 CSS 样 ...
- iOS基础篇(十七)——UIGestureRecognizer用法
UIGestureRecognizer(手势识别)在iOS 中非常重要,他极大地提高了移动设备的使用便捷性: 在3.2之前是主要使用的是由UIResponder而来的如下4种方式: - (void)t ...
- PHPCMS出错Call to undefined function sitename()
一站点使用PHPCMS V9.4.2,因很久未升级,在使用后台的在线升级,升级到9.5.4后,出现“Call to undefined function sitename()”错误(注原模板未升级), ...
- .htaccess应该放在哪里?
根据 Apache 官方的介绍,.htaccess 文件属于分布式配置文件,可以放置在网站 www 根目录的所有子目录.以及 www 根目录的上一级目录中,生效的路径总是当前目录及其所有子目录(可在文 ...
- 计算机网络(3)-----IP数据报格式
IP数据报(IP Datagram) 格式 解析 (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.目前广泛使用的IP协议版本号为4(即IPv4). (2)首部长度 占4位,可 ...
- php超全局数组变量
(1)$_SERVER 服务器的相关信息 (2)$_GET 接收用户通过url向服务器传的参数 $POST 接收用户通过http协议向服务器传递的参数 发送get请求 <a href=&quo ...
- HttpURLConnection网络请求
//创建访问的方法 public String Check_json(){ //创建一个结果字符串 String result=""; //拼接字符串 StringBuffer s ...
- springmvc跳转的几种方式
1:spring mvc 是围绕着DispatcherServlet展开的 ,其底层还是servlet 跳转方式: ①request.getRequestDispatcher("../ind ...
- Android常见控件— — —AlertDialog
package com.example.uiwidgettest2; import android.app.Activity;import android.app.AlertDialog;import ...
- 游戏贴图中常用术语《DC》的理解
什么是DC呢? 在GDI中,DC(Device Context)是一个非常重要的概念. 有的书中,将DC翻译为设备描述表,也有的书中翻译为设备上下文. 但是这些翻译,无法在我们的头脑里有强烈的冲击,无 ...