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模板方法的更多相关文章

  1. Spring mvc 中使用ftl引用共通文件出错 FreeMarker template error: Error reading included file "/WEB-INF/ftl/common/errormessage.ftl"

    初次接触spring mvc,想做一个小的练习项目,结果在ftl文件中引用其它的共通ftl文件时出错.

  2. 用Main方法调用freemarker生成文件

    MyGenerator.java package com.comp.common; import java.io.BufferedWriter; import java.io.File; import ...

  3. 内嵌的Component调用外部的方法

    如果一个内嵌的Component控件需要调用外部定义的方法,用outerDocument.方法名来调用,前提是该方法是public的.如:<mx:DataGridColumn headerTex ...

  4. JAVA用freemarker生成复杂Excel。(freemarker)

    在生成Excel的时候,大多时候都是使用poi,jxl等进行的,但是对于复杂的Excel来说,这个工作量是非常的大的,而且,对于我这么懒的人来说,这是相当痛苦的一件事情,所以,我不得不找找有没有简单一 ...

  5. freemarker 嵌套循环 (导出word时,修改ftl模板)

    1.循环 (循环输出reportList列表的每行的姓名) <#list reportList as report> ${report.name} </$list> 2.嵌套循 ...

  6. FreeMarker调用Java静态方法以及静态变量的方法

    这里介绍下在类似 Spring+FreeMarker 的架构中如何在FreeMarker中访问Java中的静态方法以及静态变量. 一.首先为了方便以及可复用我们创建一个工具类 /** * FreeMa ...

  7. FreeMarker教程

    一.什么是模板引擎,为什么要用模板引擎 在B/S程式设计中,常常有美工和程序员二个角色,他们具有不同专业技能:美工专注于表现——创建页面.风格.布局.效果等等可视元素:而程序员则忙于创建程式的商业流程 ...

  8. freemarker自定义标签(与java合用)

    自定义类继承FreemarkerManager类,重写protected Configuration createConfiguration(ServletContext servletContext ...

  9. FreeMarker的基础语法

    FreeMarker语言 FreeMarker语言概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写. FreeMarker被设计用来生成HTML Web ...

随机推荐

  1. 能源项目xml文件 -- springMVC-servlet.xml -- context:component-scan

    <context:component-scan base-package="com.xindatai.ibs" use-default-filters="false ...

  2. 常用js,css文件统一加载方法,并在加载之后调用回调函数

    原创内容,转载请注明出处! 为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护.所以我用js写了以下方法,存放在“sourceControl ...

  3. iOS开发UI篇—UITableview控件简单介绍

    iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...

  4. UIActionSheet的使用

    UIActionSheet是在iOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件. 为了快速完成这例子,我们打开Xcode 4.3.2, 先建立一个single view applicatio ...

  5. 网页中插入QQ在线功能

    网页中插入QQ在线功能 本随笔记录的是网页中如何插入qq在线聊天,这里讲解的是 普通QQ在线聊天操作. 例:第一种方式  使用 tencent://message/?uin=QQ号码&Site ...

  6. dom自定义属性 兼容 index值获取

    function getIndex(Eve,obj){ for(var i = 0;i<obj.length;i++){ obj[i].setAttribute("index" ...

  7. css2----单行过长的省略处理

    li{ width:300px; white-space:nowrap;表示怎样处理li容器中的空白部分,nowrap表强制不换行,直到文本结束或碰到</br> text-overflow ...

  8. iOS 中捕获程序崩溃日志

    iOS 中捕获程序崩溃日志 (2014-04-22 17:35:59) 转载▼     iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者,是大多数软件都选择的方法.下 ...

  9. phonegap 框架详解

    首先, 来看一下phonegap 初始化流程以及Native 与 JS 交互流程图. 说明:socket server模式下, phonegap.js 源码实现的采用1 毫秒执行一次XHR请求,  当 ...

  10. tar.gz file installation

    1. tar xzvf  filename.tar.gz 2. cd filename 3. ./configure ./configure --prefix="path" 4. ...