一,讲解一

1、宏定义

  1. <#macro select id datas>
  2. <select id="${id}" name="${id}">
  3. <option>---请选择---</option>
  4. <#list datas as data>
  5. <option value="${data}">${data}</option>
  6. </#list>
  7. </select>
  8. </#macro>

2、示例引入

  1. <#import "/inc/select.ftl" as items/>
  2. <@items.select id="city" datas=["武汉市","黄石市","黄冈市","荆州市"]/>

3、示例结果

(1)控制台打印结果

  1. <select id="city" name="city">
  2. <option>---请选择---</option>
  3. <option value="武汉市">武汉市</option>
  4. <option value="黄石市">黄石市</option>
  5. <option value="黄冈市">黄冈市</option>
  6. <option value="荆州市">荆州市</option>
  7. </select>

(2)页面显示结果

二,讲解二

1、宏定义

  1. <#macro select id datas value="">
  2. <select id="${id}" name="${id}">
  3. <option>---请选择---</option>
  4. <#list datas as data>
  5. <#if value == data>
  6. <option value="${data}" selected>${data}</option>
  7. <#else>
  8. <option value="${data}">${data}</option>
  9. </#if>
  10. </#list>
  11. </select>
  12. </#macro>

2、页面引入

  1. <@items.select id="zhuanye" datas=["请选择专业","计算机科学与技术","物流工程","英语专业"] value="计算机科学与技术"/>

3、运行结果

(1)控制台

  1. <select id="zhuanye" name="zhuanye">
  2. <option>---请选择---</option>
  3. <option value="请选择专业">请选择专业</option>
  4. <option value="计算机科学与技术" selected>计算机科学与技术</option>
  5. <option value="物流工程">物流工程</option>
  6. <option value="英语专业">英语专业</option>
  7. </select>

(2)页面显示

三,讲解三

1、宏定义

  1. <#macro select id datas value="" key="" text="">
  2. <select id="${id}" name="${id}">
  3. <option>---请选择---</option>
  4. <#list datas as data>
  5. <#if key!="">
  6. <#if value == data[key]?string>
  7. <option value="${data[key]}" selected>${data[text]}</option>
  8. <#else>
  9. <option value="${data[key]}">${data[text]}</option>
  10. </#if>
  11. <#else>
  12. <#if value == data>
  13. <option value="${data}" selected>${data}</option>
  14. <#else>
  15. <option value="${data}">${data}</option>
  16. </#if>
  17. </#if>
  18. </#list>
  19. </select>
  20. </#macro>

2、封装类

  1. /**
  2. * @Title:User.java
  3. * @Package:com.you.freemarker.model
  4. * @Description:
  5. * @author:Youhaidong(游海东)
  6. * @date:2014-6-26 下午10:28:01
  7. * @version V1.0
  8. */
  9. package com.you.freemarker.model;
  10.  
  11. /**
  12. * 类功能说明
  13. * 类修改者 修改日期
  14. * 修改说明
  15. * <p>Title:User.java</p>
  16. * <p>Description:游海东个人开发</p>
  17. * <p>Copyright:Copyright(c)2013</p>
  18. * @author:游海东
  19. * @date:2014-6-26 下午10:28:01
  20. * @version V1.0
  21. */
  22. public class User
  23. {
  24. /**
  25. * 用户号
  26. */
  27. private int userNo;
  28.  
  29. /**
  30. * 用户姓名
  31. */
  32. private String userName;
  33.  
  34. /**
  35. * 用户年龄
  36. */
  37. private int userAge;
  38.  
  39. /**
  40. * @return the userNo
  41. */
  42. public int getUserNo() {
  43. return userNo;
  44. }
  45.  
  46. /**
  47. * @param userNo the userNo to set
  48. */
  49. public void setUserNo(int userNo) {
  50. this.userNo = userNo;
  51. }
  52.  
  53. /**
  54. * @return the userName
  55. */
  56. public String getUserName() {
  57. return userName;
  58. }
  59.  
  60. /**
  61. * @param userName the userName to set
  62. */
  63. public void setUserName(String userName) {
  64. this.userName = userName;
  65. }
  66.  
  67. /**
  68. * @return the userAge
  69. */
  70. public int getUserAge() {
  71. return userAge;
  72. }
  73.  
  74. /**
  75. * @param userAge the userAge to set
  76. */
  77. public void setUserAge(int userAge) {
  78. this.userAge = userAge;
  79. }
  80.  
  81. /**
  82. * <p>Title:</p>
  83. * <p>Description:</p>
  84. * @param userNo
  85. * @param userName
  86. * @param userAge
  87. */
  88. public User(int userNo, String userName, int userAge) {
  89. super();
  90. this.userNo = userNo;
  91. this.userName = userName;
  92. this.userAge = userAge;
  93. }
  94.  
  95. /**
  96. * <p>Title:</p>
  97. * <p>Description:</p>
  98. */
  99. public User() {
  100. super();
  101. }
  102.  
  103. }

3、页面引入

  1. <@items.select id="user" datas=users key="userNo" text="userName"/>

4、Junit测试方法

  1. /**
  2. *
  3. * @Title:testSelect
  4. * @Description:
  5. * @param:
  6. * @return: void
  7. * @throws
  8. */
  9. @Test
  10. public void testSelect()
  11. {
  12. List<User> users = Arrays.asList(new User(1,"张三丰",25),
  13. new User(2,"李思思",22),
  14. new User(3,"赵武",23),
  15. new User(4,"刘雪",20),
  16. new User(5,"朱顾",21),
  17. new User(6,"赵武",23),
  18. new User(7,"吴语",24),
  19. new User(8,"血玉",21));
  20. root.put("users", users);
  21. studentPrint("address.ftl");
  22. studentFile("address.ftl","address.html");
  23. }

5、测试结果

(1)控制台打印

  1. <select id="user" name="user">
  2. <option>---请选择---</option>
  3. <option value="1">张三丰</option>
  4. <option value="2">李思思</option>
  5. <option value="3">赵武</option>
  6. <option value="4">刘雪</option>
  7. <option value="5">朱顾</option>
  8. <option value="6">赵武</option>
  9. <option value="7">吴语</option>
  10. <option value="8">血玉</option>
  11. </select>

(2)页面显示

四,讲解四

1、宏定义

  1. <#macro select id datas value="" key="" text="" headKey="" headValue="">
  2. <select id="${id}" name="${id}">
  3. <option>---请选择---</option>
  4. <#if headKey!="">
  5. <option value="${headKey}">${headValue}</option>
  6. </#if>
  7. <#list datas as data>
  8. <#if key!="">
  9. <#if value == data[key]?string>
  10. <option value="${data[key]}" selected>${data[text]}</option>
  11. <#else>
  12. <option value="${data[key]}">${data[text]}</option>
  13. </#if>
  14. <#else>
  15. <#if value == data>
  16. <option value="${data}" selected>${data}</option>
  17. <#else>
  18. <option value="${data}">${data}</option>
  19. </#if>
  20. </#if>
  21. </#list>
  22. </select>
  23. </#macro>

2、引入宏

  1. <@items.select id="username" datas=users key="userNo" text="userName" headKey="0" headValue="其他"/>

3、示例结果

  1. <select id="username" name="username">
  2. <option>---请选择---</option>
  3. <option value="0">其他</option>
  4. <option value="1">张三丰</option>
  5. <option value="2">李思思</option>
  6. <option value="3">赵武</option>
  7. <option value="4">刘雪</option>
  8. <option value="5">朱顾</option>
  9. <option value="6">赵武</option>
  10. <option value="7">吴语</option>
  11. <option value="8">血玉</option>
  12. </select>

五,讲解五

1、宏定义

  1. <#macro select id datas value="" key="" text="" headKey="" headValue="">
  2. <select id="${id}" name="${id}">
  3. <option>---请选择---</option>
  4. <#if headKey!="">
  5. <option value="${headKey}">${headValue}</option>
  6. </#if>
  7. <#if datas?is_hash_ex>
  8. <#local keys=datas?keys/>
  9. <#list keys as key>
  10. <#if key==value>
  11. <option value="${key}" selected>${datas[key]}</option>
  12. <#else>
  13. <option value="${key}">${datas[key]}</option>
  14. </#if>
  15. </#list>
  16. <#else>
  17. <#list datas as data>
  18. <#if key!="">
  19. <#if value == data[key]?string>
  20. <option value="${data[key]}" selected>${data[text]}</option>
  21. <#else>
  22. <option value="${data[key]}">${data[text]}</option>
  23. </#if>
  24. <#else>
  25. <#if value == data>
  26. <option value="${data}" selected>${data}</option>
  27. <#else>
  28. <option value="${data}">${data}</option>
  29. </#if>
  30. </#if>
  31. </#list>
  32. </#if>
  33.  
  34. </select>
  35. </#macro>

2、宏引入

  1. <@items.select id="sex" datas={"0":"请选择学历","1":"小学","2":"初中","3":"高中","4":"本科"} />

3、运行结果

  1. <select id="sex" name="sex">
  2. <option>---请选择---</option>
  3. <option value="0">请选择学历</option>
  4. <option value="1">小学</option>
  5. <option value="2">初中</option>
  6. <option value="3">高中</option>
  7. <option value="4">本科</option>
  8.  
  9. </select>

freemarker写select组件(二十二)的更多相关文章

  1. freemarker写select组件(二)

    freemarker写select组件 1.宏定义 <#macro select id datas value=""> <select id="${id ...

  2. freemarker写select组件(一)

    freemarker写select组件 1.宏定义 <#macro select id datas> <select id="${id}" name=" ...

  3. freemarker写select组件(五)

    freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...

  4. freemarker写select组件(四)

    freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...

  5. freemarker写select组件(三)

    freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...

  6. freemarker写select组件报错总结(一)

    1.具体错误如下 六月 25, 2014 11:26:29 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template pr ...

  7. freemarker写select组件报错总结(二)

    1.错误描述 六月 25, 2014 11:32:49 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  8. freemarker写select组件报错总结(七)

    1.错误描述 六月 26, 2014 11:26:27 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  9. freemarker写select组件报错总结(六)

    1.错误描述 六月 26, 2014 10:53:26 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

随机推荐

  1. IDEA如何创建及配置Web项目(多图)

    正文之前 在学习Java Web时,第一个遇到的问题就是如何创建或配置Web项目了,今天,就用IntelliJ IDEA 来进行Web项目配置: 创建Web项目 配置web项目 正文 创建Web项目 ...

  2. Google chrome浏览器中通过扩展调用本地应用程序以及和程序相互通讯(C++)

    最近项目用到浏览插件的开发,IE用到的是BHO,chrome打算做成扩展. 但是和ie有一点不同,chrome扩展是基于html+js+css开发的,那么就会有二个问题 1. 代码和算法等容易被别人复 ...

  3. VS2010+opencv2.4.10+gsl_1.8配置实现RobHess的SIFT程序

    最近在做sift方面的毕业设计,弄了一天终于把RobHess的SIFT程序调通了.虽然网上有很多相关博文,但是我还是想把我的调试的过程跟大家分享一下.由于工程没法在博文上传,所以有需要的可以在下方留言 ...

  4. 安装gitlab8.0在reconfigure报错

    现象: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/303 参考方法: https://forum.gitlab.com/t/gitlab- ...

  5. mac攻略(2) -- apache站点配置

    [http://www.cnblogs.com/redirect/p/6112164.html] Mac OS X 中默认有两个目录可以直接运行你的 Web 程序, 一个是系统级的 Web 根目录:/ ...

  6. MySQL中order by排序时,数据存在null咋办

    order by排序是最常用的功能,但是排序有时会遇到数据为空null的情况,这样排序就会乱了,这里以MySQL为例,记录我遇到的问题和解决思路. 问题: 网页要实现table的行鼠标拖拽排序,我用A ...

  7. python多版本以及各种包管理

    python多版本以及各种包管理 python 包管理 各个版本 python版本管理 由于Python有2.x和3.x两个大的版本,而且每一个工程建立所用的各种包的版本也不尽相同(如flask1.x ...

  8. Flask從入門到入土(二)——請求响应與Flask扩展

    ———————————————————————————————————————————————————————————— 一.程序和請求上下文 Flask從客戶端收到請求時,要讓視圖函數能訪問一些對象 ...

  9. CodeForces - 796D Police Stations bfs

    思路:删除尽量多的边使得所有点都能在限制距离之内到达一个警局,删除边会形成多棵子树,最多只能k棵.其实就是以每个警局为根结点,把整棵树划分为以警局为根结点的k棵树,说明要删除的边的数量就是k-1条,即 ...

  10. UESTC 251 最长上升子序列O(nlgn)

    O(n^2)过不了.必须要用一个额外的数组保存当前长度最小值,然后lgn查表 AC代码 #include<cstdio> #include<algorithm> using n ...