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. @keyframes

    通过 @keyframes 规则,您能够创建动画. @keyframes movelike{ from{right:1205px;} to{right:0px}} 创建动画的原理是,将一套 CSS 样 ...

  2. iOS基础篇(十七)——UIGestureRecognizer用法

    UIGestureRecognizer(手势识别)在iOS 中非常重要,他极大地提高了移动设备的使用便捷性: 在3.2之前是主要使用的是由UIResponder而来的如下4种方式: - (void)t ...

  3. PHPCMS出错Call to undefined function sitename()

    一站点使用PHPCMS V9.4.2,因很久未升级,在使用后台的在线升级,升级到9.5.4后,出现“Call to undefined function sitename()”错误(注原模板未升级), ...

  4. .htaccess应该放在哪里?

    根据 Apache 官方的介绍,.htaccess 文件属于分布式配置文件,可以放置在网站 www 根目录的所有子目录.以及 www 根目录的上一级目录中,生效的路径总是当前目录及其所有子目录(可在文 ...

  5. 计算机网络(3)-----IP数据报格式

    IP数据报(IP Datagram) 格式 解析 (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.目前广泛使用的IP协议版本号为4(即IPv4). (2)首部长度 占4位,可 ...

  6. php超全局数组变量

    (1)$_SERVER 服务器的相关信息 (2)$_GET 接收用户通过url向服务器传的参数  $POST 接收用户通过http协议向服务器传递的参数 发送get请求 <a href=&quo ...

  7. HttpURLConnection网络请求

    //创建访问的方法 public String Check_json(){ //创建一个结果字符串 String result=""; //拼接字符串 StringBuffer s ...

  8. springmvc跳转的几种方式

    1:spring mvc 是围绕着DispatcherServlet展开的 ,其底层还是servlet 跳转方式: ①request.getRequestDispatcher("../ind ...

  9. Android常见控件— — —AlertDialog

    package com.example.uiwidgettest2; import android.app.Activity;import android.app.AlertDialog;import ...

  10. 游戏贴图中常用术语《DC》的理解

    什么是DC呢? 在GDI中,DC(Device Context)是一个非常重要的概念. 有的书中,将DC翻译为设备描述表,也有的书中翻译为设备上下文. 但是这些翻译,无法在我们的头脑里有强烈的冲击,无 ...