首页 > 代码库 > [Freemarker] - 使用struts的component调用freemarker的ftl模板方法

[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.

[Freemarker] - 使用struts的component调用freemarker的ftl模板方法