一,讲解一

1、宏定义

 <#macro select id datas>
      <select id="${id}" name="${id}">
           <option>---请选择---</option>
           <#list datas as data>
               <option value="${data}">${data}</option>
           </#list>
      </select>
 </#macro>

2、示例引入

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

3、示例结果

(1)控制台打印结果

 <select id="city" name="city">
           <option>---请选择---</option>
               <option value="武汉市">武汉市</option>
               <option value="黄石市">黄石市</option>
               <option value="黄冈市">黄冈市</option>
               <option value="荆州市">荆州市</option>
  </select>

(2)页面显示结果

二,讲解二

1、宏定义

 <#macro select id datas value="">
      <select id="${id}" name="${id}">
           <option>---请选择---</option>
           <#list datas as data>
               <#if value == data>
                  <option value="${data}" selected>${data}</option>
                  <#else>
                  <option value="${data}">${data}</option>
               </#if>
           </#list>
      </select>
 </#macro>

2、页面引入

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

3、运行结果

(1)控制台

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

(2)页面显示

三,讲解三

1、宏定义

 <#macro select id datas value="" key="" text="">
      <select id="${id}" name="${id}">
           <option>---请选择---</option>
           <#list datas as data>
               <#if key!="">
                   <#if value == data[key]?string>
                      <option value="${data[key]}" selected>${data[text]}</option>
                   <#else>
                    <option value="${data[key]}">${data[text]}</option>
                  </#if>
               <#else>
                   <#if value == data>
                      <option value="${data}" selected>${data}</option>
                  <#else>
                  <option value="${data}">${data}</option>
               </#if>
              </#if>
           </#list>
      </select>
 </#macro>

2、封装类

 /**
  * @Title:User.java
  * @Package:com.you.freemarker.model
  * @Description:
  * @author:Youhaidong(游海东)
  * @date:2014-6-26 下午10:28:01
  * @version V1.0
  */
 package com.you.freemarker.model;

 /**
  * 类功能说明
  * 类修改者 修改日期
  * 修改说明
  * <p>Title:User.java</p>
  * <p>Description:游海东个人开发</p>
  * <p>Copyright:Copyright(c)2013</p>
  * @author:游海东
  * @date:2014-6-26 下午10:28:01
  * @version V1.0
  */
 public class User
 {
     /**
      * 用户号
      */
     private int userNo;

     /**
      * 用户姓名
      */
     private String userName;

     /**
      * 用户年龄
      */
     private int userAge;

     /**
      * @return the userNo
      */
     public int getUserNo() {
         return userNo;
     }

     /**
      * @param userNo the userNo to set
      */
     public void setUserNo(int userNo) {
         this.userNo = userNo;
     }

     /**
      * @return the userName
      */
     public String getUserName() {
         return userName;
     }

     /**
      * @param userName the userName to set
      */
     public void setUserName(String userName) {
         this.userName = userName;
     }

     /**
      * @return the userAge
      */
     public int getUserAge() {
         return userAge;
     }

     /**
      * @param userAge the userAge to set
      */
     public void setUserAge(int userAge) {
         this.userAge = userAge;
     }

     /**
      * <p>Title:</p>
      * <p>Description:</p>
      * @param userNo
      * @param userName
      * @param userAge
      */
     public User(int userNo, String userName, int userAge) {
         super();
         this.userNo = userNo;
         this.userName = userName;
         this.userAge = userAge;
     }

     /**
      * <p>Title:</p>
      * <p>Description:</p>
      */
     public User() {
         super();
     }

 }

3、页面引入

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

4、Junit测试方法

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

5、测试结果

(1)控制台打印

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

(2)页面显示

四,讲解四

1、宏定义

 <#macro select id datas value="" key="" text="" headKey="" headValue="">
      <select id="${id}" name="${id}">
           <option>---请选择---</option>
           <#if headKey!="">
                <option value="${headKey}">${headValue}</option>
           </#if>
           <#list datas as data>
               <#if key!="">
                   <#if value == data[key]?string>
                      <option value="${data[key]}" selected>${data[text]}</option>
                   <#else>
                    <option value="${data[key]}">${data[text]}</option>
                  </#if>
               <#else>
                   <#if value == data>
                      <option value="${data}" selected>${data}</option>
                  <#else>
                  <option value="${data}">${data}</option>
               </#if>
              </#if>
           </#list>
      </select>
 </#macro>

2、引入宏

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

3、示例结果

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

五,讲解五

1、宏定义

 <#macro select id datas value="" key="" text="" headKey="" headValue="">
      <select id="${id}" name="${id}">
           <option>---请选择---</option>
           <#if headKey!="">
                <option value="${headKey}">${headValue}</option>
           </#if>
           <#if datas?is_hash_ex>
              <#local keys=datas?keys/>
              <#list keys as key>
                   <#if key==value>
                       <option value="${key}" selected>${datas[key]}</option>
                   <#else>
                       <option value="${key}">${datas[key]}</option>
                   </#if>
              </#list>
           <#else>
              <#list datas as data>
               <#if key!="">
                   <#if value == data[key]?string>
                      <option value="${data[key]}" selected>${data[text]}</option>
                   <#else>
                    <option value="${data[key]}">${data[text]}</option>
                  </#if>
               <#else>
                   <#if value == data>
                      <option value="${data}" selected>${data}</option>
                  <#else>
                  <option value="${data}">${data}</option>
               </#if>
              </#if>
           </#list>
         </#if>

      </select>
 </#macro>

2、宏引入

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

3、运行结果

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

      </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. WPF 圆角输入框

    今天打算来做一个圆角的输入框 默认输入框: 这个输入框不好看,并且在XP 跟 WIN 7  WIN10 效果 都不太一样 我们今天不用模板的方式,而是 最简单的方式 来实现 圆角 输入框: ----- ...

  2. Docker Compose容器编排

    Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...

  3. u-boot核心初始化

    异常向量表:异常:因为内部或者外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件.ARM Architecture Reference Manual p54页.7种异常的类型:Re ...

  4. Vue站点的搭建之旅

      背景       很久没写博客了,这次博客分享一下最近上班空闲时间做的两个业余Demo.分别是V电影App的移动端站点[一直很喜欢用这个APP可是他们没有出对应的mobile端,所以自己开发一个, ...

  5. spark集成hbase与hive数据转换与代码练习

    帮一个朋友写个样例,顺便练手啦~一直在做平台的各种事,但是代码后续还要精进啊... import java.util.Date import org.apache.hadoop.hbase.HBase ...

  6. Sql Server 常用事务处理总结

    在数据库操作中,常用事务写法: 1. 通过 @@error 判断一批sql 执行完毕,是否有异常.  @@error 为系统变量,每次执行完 sql 都会返回一个数值,  0 表示 执行成功 ,非0 ...

  7. vim+makefile入门编辑,编译,差错实例

    vim+makefile入门编辑,编译,差错实例 vim makefile 编译 编写代码,一般在vim中编辑完后,输入:wq,在命令行下输入g++ hello.cc -o hello ,出现问题,打 ...

  8. JVM中对象访问定位两种方式

    1.通过句柄方式访问, 在Java堆中分出一块内存进行存储句柄池,这样的话,在栈中存储的是句柄的地址 优点: 当对象移动的时候(垃圾回收的时候移动很普遍),这样值需要改变句柄中的指针,但是栈中的指针不 ...

  9. centos/linux下的安装Tomcat

    1.启动tomcat时候需要JDK依赖 如果没有安装的请移步到该链接Centos/linux下的JDK安装 2.从官网上下载tomcat压缩包 wget -c http://apache.fayea. ...

  10. maven使用jstl表达式和The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application解决

    maven 中使用jstl表达式中出现如上错误.原因: 1.由于在maven中的web项目没有自动依赖jstl的jar 未在pom文件中添加jstl相关的jar <!--jstl表达式--> ...