freemarker写select组件(二十二)
一,讲解一
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组件(二十二)的更多相关文章
- freemarker写select组件(二)
freemarker写select组件 1.宏定义 <#macro select id datas value=""> <select id="${id ...
- freemarker写select组件(一)
freemarker写select组件 1.宏定义 <#macro select id datas> <select id="${id}" name=" ...
- freemarker写select组件(五)
freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...
- freemarker写select组件(四)
freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...
- freemarker写select组件(三)
freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...
- freemarker写select组件报错总结(一)
1.具体错误如下 六月 25, 2014 11:26:29 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template pr ...
- freemarker写select组件报错总结(二)
1.错误描述 六月 25, 2014 11:32:49 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- freemarker写select组件报错总结(七)
1.错误描述 六月 26, 2014 11:26:27 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- freemarker写select组件报错总结(六)
1.错误描述 六月 26, 2014 10:53:26 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
随机推荐
- BZOJ 2938: [Poi2000]病毒 [AC自动机 拓扑排序]
2938: [Poi2000]病毒 题意:判断是否存在无限长的不含模式串的字符串.只有01. 建出套路DP的转移图,判断有环就行了 练习一下拓扑排序 #include <iostream> ...
- PHP实现session对象封装
<?php class Session { private $db; // 设置数据库变量 private $expiry = 3600; // 设置Session失效时间 public fun ...
- php 下载保存文件保存到本地的两种实现方法
这里的下载,指的是 弹出下载提示框. 第一种: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php function downfile() { $filename ...
- python学习:Dmidecode系统信息(一)
#!/usr/bin/env python from subprocess import Popen, PIPE p = Popen(['dmidecode'], stdout=PIPE) d ...
- .NET平台开源项目速览(19)Power BI神器DAX Studio
PowerBI更新频繁,已经有点更不上的节奏,一直在关注和学习中,基本的一些操作大概是没问题,更重要的是注重Power Query,M函数,以及DAX的使用,这才是核心. 上个月研究了DAX的一些 ...
- c++ 回调函数使用
普通回调 #include<stdio.h> void printWelcome(int len) { printf("welcome -- %d\n", len); ...
- Spring Data JPA 入门Demo
什么是JPA呢? 其实JPA可以说是一种规范,是java5.0之后提出来的用于持久化的一套规范:它不是任何一种ORM框架,在我看来,是现有ORM框架在这个规范下去实现持久层. 它的出现是为了简化现有的 ...
- mybatis与spring的整合(使用接口实现crud)
本人刚刚接触mybatis,今天把它和spring整合起来用了一个上午==. 一开始是通过配置文件来配置,后来尝试用了一下注解,觉得mybatis的注解真的有点恶心...一大坨的,所以我还是建议使用配 ...
- Java Enum总结
枚举类型 枚举类型是Java5新增的特性之一,枚举是一种特殊类型的类,其枚举的每一个值 都是该枚举类的一个实例.枚举类型是作为Java语言的一部分,是完全类型安全的, 编译器会帮助我们检查枚举类型的正 ...
- Kaggle新手入门之路
学完了Coursera上Andrew Ng的Machine Learning后,迫不及待地想去参加一场Kaggle的比赛,却发现从理论到实践的转变实在是太困难了,在此记录学习过程. 一:安装Anaco ...