• [Freemarker]


    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" />
  • 相关阅读:
    C#可视化程序设计第三章(3,4)
    "Can’t be opened because Apple cannot check it for malicious software" 解决方案
    Mac系统.DS_Store文件导致IOError: [Errno 20] Not a directory:解决方案
    读书笔记 《局外人》
    Chrome 67之后无法离线安装插件
    函数和方法的区别
    github|webstorm
    webstorm
    Markdown
    github
  • 原文地址:https://www.cnblogs.com/HD/p/4071093.html
Copyright © 2020-2023  润新知