freemarker写select组件(三)
freemarker写select组件
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)页面显示
freemarker写select组件(三)的更多相关文章
- 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=""> <select id="${id ...
- freemarker写select组件报错总结(一)
1.具体错误如下 六月 25, 2014 11:26:29 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template pr ...
- freemarker写select组件报错总结(三)
1.错误描述 <html> <head> <meta http-equiv="content-type" content="text/htm ...
- freemarker写select组件(二十二)
一,讲解一 1.宏定义 <#macro select id datas> <select id="${id}" name="${id}"> ...
- 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 ...
随机推荐
- 所不为人知的Python装饰器
装饰器可以说是Python中非常重要的特性之一.有些人要么从没使用过装饰器,要么就是对装饰器的使用一知半解.也有些人觉得装饰器很简单:"装饰器不就是那些把函数作为参数并输出一个函数的函数&q ...
- 关于C#连接Oracle数据库 尝试加载Oracle客户端时引发BadImageFormatException 如果在安装32位Oracle客户端组件的情况下以64位模式运行,将出现此问题
这个问题已经困扰了我快一个月了,各种百度,各种博客,可是,一个个都试过了,什么下载32位客户端,配置环境变量什么的,纯属扯犊子,开发环境win10 64位 oracle 11g r2 64位,这 ...
- Ubuntu14.04server + LNMP + Zabbix3.4安装教程
此教程使用的编辑器是vim LNMP安装很简单,跟着步骤走没有问题,就不粘图片了. 安装MYSQL (1)开始安装:apt-get install mysql-server libmysqld-dev ...
- BZOJ 3771: Triple [快速傅里叶变换 生成函数 容斥原理]
题意:n个物品,可以用1/2/3个不同的物品组成不同的价值,求每种价值有多少种方案(顺序不同算一种) [生成函数]: 构造这么一个多项式函数g(x),使得n次项系数为a[n]. 普通型生成函数用于解决 ...
- git命令行工作的正确姿势
git命令行创建并提交新分支到mater分支的常规步骤 git branch new_branch git status 查看修改的文件 git add changed_files git commi ...
- unity爬坑记录
这里记一下平时遇到的unity bug: unity2017最好不要在prefab上面修改它上面的组件参数 最好是拖放到场景之后修改场景内的物体组件参数 完事了apply一下删掉 不这样做的话 可能u ...
- mysql有多条记录的单个字段想存为一个字段显示的方法
SELECT po.id,(SELECT GROUP_CONCAT(mr.member_type) as memberTypeList FROM prod_offer_member_rel mr WH ...
- js中的回调函数
1.你定义的 2.你没有调用 3.但是最终他执行了 例子: 定时器回调函数 setTimeout(function(){ },100); dom元素的回调函数 document.getElementB ...
- css渲染(一) 字体和文本
一.字体属性 1.默认字体系列 chrome/opera:"宋体" firefox:"微软雅黑" safari/IE:Times,"宋体" ...
- 剑指offer第七天
30.连续子数组的最大和 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决 ...