Freemarker标签示例

1、创建两个实体类

package com.website.laws.entity;

/**
 * 栏目
 * @author: Longjun
 * @Description: TODO
 * @date:2016年4月27日 下午2:21:52
 */
public class Column {
	protected Long id;//法规ID
	private String columncode;//栏目Code
	private String columnname;//栏目名称(如:国内法规,国外法规)
	private Long levelgrade;//
	private String levelcode;//
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getColumncode() {
		return columncode;
	}
	public void setColumncode(String columncode) {
		this.columncode = columncode;
	}
	public String getColumnname() {
		return columnname;
	}
	public void setColumnname(String columnname) {
		this.columnname = columnname;
	}
	public Long getLevelgrade() {
		return levelgrade;
	}
	public void setLevelgrade(Long levelgrade) {
		this.levelgrade = levelgrade;
	}
	public String getLevelcode() {
		return levelcode;
	}
	public void setLevelcode(String levelcode) {
		this.levelcode = levelcode;
	}

}
package com.website.laws.entity;

/**
 * 内容
 * @author: Longjun
 * @Description: TODO
 * @date:2016年4月27日 下午2:21:52
 */
public class Content {
	protected Long id;//新闻ID
	private String title;//新闻标题
	private String contentstr;//新闻内容
	private Long columnid;//栏目ID
	private Long disindex;//
	private String inputtime;
	private Long isout;
	private Long fieid;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContentstr() {
		return contentstr;
	}
	public void setContentstr(String contentstr) {
		this.contentstr = contentstr;
	}
	public Long getColumnid() {
		return columnid;
	}
	public void setColumnid(Long columnid) {
		this.columnid = columnid;
	}
	public Long getDisindex() {
		return disindex;
	}
	public void setDisindex(Long disindex) {
		this.disindex = disindex;
	}
	public String getInputtime() {
		return inputtime;
	}
	public void setInputtime(String inputtime) {
		this.inputtime = inputtime;
	}
	public Long getIsout() {
		return isout;
	}
	public void setIsout(Long isout) {
		this.isout = isout;
	}
	public Long getFieid() {
		return fieid;
	}
	public void setFieid(Long fieid) {
		this.fieid = fieid;
	}

}

2、编写标签支持的后台(实现doStartTag方法)

package com.website.laws.tag;

import java.io.IOException;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

import com.website.laws.entity.Column;
import com.website.laws.entity.Content;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
 * 国内法规
 * @author: Longjun
 * @Description: TODO
 * @date:2016年4月27日 下午3:01:16
 */
@SuppressWarnings("serial")
public class InternalLawsTag extends TagSupport {

	private Long columnId;//栏目ID
	private Integer number;//法规显示条数
	private String lawsHref;//法规连接
	private String moreHref;// 更多的链接
	private Integer titleLength = 20;//法规标题显示长度
	private Map<String, Object> model = new HashMap<String, Object>();

	public Long getColumnId() {
		return columnId;
	}

	public void setColumnId(Long columnId) {
		this.columnId = columnId;
	}

	public Integer getNumber() {
		return number;
	}

	public void setNumber(Integer number) {
		this.number = number;
	}

	public String getLawsHref() {
		return lawsHref;
	}

	public void setLawsHref(String lawsHref) {
		this.lawsHref = lawsHref;
	}

	public String getMoreHref() {
		return moreHref;
	}

	public void setMoreHref(String moreHref) {
		this.moreHref = moreHref;
	}

	public Integer getTitleLength() {
		return titleLength;
	}

	public void setTitleLength(Integer titleLength) {
		this.titleLength = titleLength;
	}

	public Map<String, Object> getModel() {
		return model;
	}

	public void setModel(Map<String, Object> model) {
		this.model = model;
	}

	@Override
	public int doStartTag() throws JspException {
		Column column = new Column();
		column.setId(columnId);
		column.setColumnname("国内法规");
		column.setColumncode("0002-01");
		column.setLevelgrade(2l);
		column.setLevelcode("0002-01");
		List<Content> contentList = new ArrayList<Content>();
		Content content1 = new Content();
		content1.setId(123l);
		content1.setContentstr("中德缺陷消费品召回管理研讨会在京召开中德缺陷消费品召回管理研讨会在京召开中德缺陷消费品召回管理研讨会在京召开中德缺陷消费品召回管理研讨会在京召开");
		content1.setColumnid(columnId);
		for(int i=1;i<=7;i++){
			content1.setTitle("中德缺陷消费品召回管理研讨会在京召开"+i);
			contentList.add(content1);
		}

		List<Content> columnContent = new ArrayList<Content>();	

		for (Content content2 : contentList) {
			if (content2.getTitle().length() > this.titleLength) {
				content2.setTitle(content2.getTitle().substring(0, this.titleLength) + "...");
			} else {
				content2.setTitle(content2.getTitle());
			}
			if (content2.getInputtime() != null) {
				content2.setInputtime(new SimpleDateFormat("yyyy-MM-dd").format(content2.getInputtime()));
			}
			columnContent.add(content2);
		}

		HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
		String ctx = request.getContextPath();
		this.model.put("ctx", ctx);
		this.model.put("lawsHref", lawsHref);
		this.model.put("moreHref", moreHref);
		this.model.put("number", number);
		this.model.put("column", column);
		this.model.put("lawsList", columnContent);
		try {
			Configuration configuration = new Configuration();
			configuration.setClassForTemplateLoading(InternalLawsTag.class, "template");
			Template template = configuration.getTemplate("internalLaws.ftl", "UTF-8");
			StringWriter writer = new StringWriter();
			template.process(this.model, writer);
			this.pageContext.getOut().write(writer.toString());
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		}
		return SKIP_PAGE;
	}
}

3、编写标签配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
	version="2.0">
	<!-- 此标签库的一个简短描述 -->
	<description>there are custom tags of tag</description>
	<!-- 此标签库的版本,由标签开发者自行决定(必须元素) -->
	<tlib-version>1.0</tlib-version>
	<!-- 定义一个简短的名称,主要是给一些工具使用(必须元素) -->
	<short-name>laws</short-name>
	<!-- 定义此标签库的uri路径,用于唯一标识该数据库,便于页面的引用 -->
	<uri>http://com.website.laws</uri>
	<!-- 此标签库中的一个标签处理器的声明- -->
	<tag>
		<!-- 该标签处理器的一个简短描述 -->
		<description>测试例子</description>
		<!-- 该标签名称(必须元素) -->
		<name>internal</name>
		<!-- 该标签处理类的全限定名(必须元素) -->
		<tag-class>com.website.laws.tag.InternalLawsTag</tag-class>
		<!-- 指明该标签主题类型) -->
		<body-content>empty</body-content>
		<!-- 指明该标签的属性 -->
		<attribute>
			<!-- 指明标签的属性 -->
			<name>columnId</name>
			<!-- 该标签是否为必填 false为不是必须的元素 -->
			<required>true</required>
			<!-- 是否支持使用脚本和EL表达式来获取动态的值-->
			<rtexprvalue>true</rtexprvalue>
		</attribute>

		<attribute>
			<name>number</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>titleLength</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<description>新闻详情的链接</description>
			<name>lawsHref</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<description>更多新闻的链接</description>
			<name>moreHref</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
	</tag>

</taglib>  

4、编写ftl模版

<div class="outNEWsDIV">
	<#if column?? &&column.columnname??>
		<H4>
			<I class="i-news1"></I>
			<A title="查看更多" href="${moreHref}" class="inercolor">${column.columnname}<span>更多>></span></A>
		</H4>
		<#if (lawsList?size>0)>
			<ul>
			<#list lawsList as laws>
					<#if laws_index%2==0>
						<li>
							<a href="${lawsHref}?id=${laws.id}" id="${laws.id}">
								<span>${laws_index+1}</span>
								${laws.title}
							</a>
						</li>
					<#else>
						<li id="showlibgcolor">
							<a href="${lawsHref}?id=${laws.id}" id="${laws.id}">
								<span>${laws_index+1}</span>
								${laws.title}
							</a>
						</li>
					</#if>
			</#list>
			</ul>
		<#else>
			<span>    没有数据</span>
		</#if>
	</#if>
</div>

5、标签在jsp页面中的使用

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set value="${pageContext.request.contextPath}" var="ctx"></c:set>
<%@ taglib uri="http://com.website.newInfo" prefix="newsInfo" %>
<%@ taglib uri="http://com.website.laws" prefix="laws" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>国家质检总局进出口工业与消费品风险评估中心</title>
<link href="${ctx }/css/style.css" rel="stylesheet" type="text/css" />
<meta name="keywords" content="国家质检总局进出口工业与消费品风险评估中心,国家质检总局,进出口工业与消费品风险评估中心" />
<meta name="description" content="国家质检总局进出口工业与消费品风险评估中心 "/>
<SCRIPT language="javascript" src="${ctx }/js/jquery-1.9.1.min.js"></SCRIPT>
<SCRIPT language="javascript" src="${ctx }/js/sb15_index.js" type="text/javascript"></SCRIPT>
<script language="javascript">
	function viewEvent(nowMode){
		if (nowMode == 1){
	    	disp(document.all.show1,"");
	    	disp(document.all.show2,"none");
	    	disp(document.all.show3,"none");
			disp(document.all.show4,"none");
	    }else if(nowMode == 2){
		    disp(document.all.show1,"none");
		    disp(document.all.show2,"");
		    disp(document.all.show3,"none");
			disp(document.all.show4,"none");
      	} else if(nowMode == 3){
		    disp(document.all.show1,"none");
		    disp(document.all.show2,"none");
		    disp(document.all.show3,"");
			disp(document.all.show4,"none");
      	} else if(nowMode == 4){
		    disp(document.all.show1,"none");
		    disp(document.all.show2,"none");
		    disp(document.all.show3,"none");
			disp(document.all.show4,"");
   		}
  	}

  	function disp(obj,stl){
     	if(obj!=null){
       		obj.style.display=stl;
     	}
  	}
    $().ready(function() {
        $(function(){
            $(".tab li:first").addClass("active");
            $(".tab div:gt(0)").hide();
            $(".tab li").click(function(){
                $(this).addClass("active").siblings("li").removeClass();
                $(".tab div:eq("+$(this).index()+")").show().siblings("div").hide();
				$(this).append("<b/>");
				$(this).siblings().children("b").remove();
            });
        });
    });
</script>
</head>
<body>
<!--顶部代码-->
<div class="headerdiv">
    <div class="logoleft"><img src="${ctx}/images/logo.png" /></div>
    <div class="searchright">
    <FORM id="myForm" onsubmit="return false;" method="post" target="_blank"><INPUT name="channelid" type="hidden" value="225511">
     <DIV class="searchType"><INPUT name="searchword" class="seaInput" id="textfield" onkeydown="if(event.keyCode==13){searchfun();}" onclick="if(value==defaultValue){value='';this.style.color='#0000ff'}" onblur="if(!value){value=defaultValue;this.style.color='#5f90ce'}" type="text" value="请输入搜索关键词"></DIV><A class="seaBtn" id="submitbutton" href="javascript:void(0);"></A></FORM>
  </div>
</div>

<!--页面中间代码-->
<div class="shadediv">
 	<!--最新消息开始-->
	<div class="Newsdiv" id="show1">
      	<div class="indexBoxLeft">
			<A class="act" href="#" onmouseover="javaScript:viewEvent(1);"><EM><I class="il-1"></I></EM><SPAN>最新信息</SPAN><B> </B></A>
        	<A class="act1" href="#" onmouseover="javaScript:viewEvent(2);"><EM><I class="il-2"></I></EM><SPAN>新闻动态</SPAN></A>
        	<A class="act2" href="#" onmouseover="javaScript:viewEvent(3);"><EM><I class="il-3"></I></EM><SPAN>法律法规</SPAN></A>
        	<A class="act3" href="#" onmouseover="javaScript:viewEvent(4);"><EM><I class="il-4"></I></EM><SPAN>中心介绍</SPAN></A>
       	</div>
       	<div class="piLeft">
       		<!-- 最新信息 -->
            <newsInfo:info length="15" columnId="5"  maxNum="10"/>
            <div class="piMid">
                <div class="divbannershow">
                	<img src="${ctx}/images/btn1.png" style="padding-right:18px;" />
                	<img src="${ctx}/images/btn2.png" onClick="window.open('searchlist.html')" style="cursor: pointer;" />
                </div>
              	<newsInfo:recall title="召回信息" length="17" columnId="1" detailHref="#" moreHref="#"/>
              	<newsInfo:recall title="风险信息" length="17" columnId="1" detailHref="#" moreHref="#"/>
            </div>
        </DIV>
	</div>

<!--新闻动态开始-->
	<div class="Newsdiv" id="show2" style="display:none;">
      <DIV class="indexBoxLeft">
        <A class="act" href="#" onmouseover="javaScript:viewEvent(1);"><EM><I class="il-1"></I></EM><SPAN>最新信息</SPAN></A>
        <A class="act1" href="#" onmouseover="javaScript:viewEvent(2);"><EM><I class="il-2"></I></EM><SPAN>新闻动态</SPAN><B id="a2b"> </B></A>
        <A class="act2" href="#" onmouseover="javaScript:viewEvent(3);"><EM><I class="il-3"></I></EM><SPAN>法律法规</SPAN></A>
        <A class="act3" href="#" onmouseover="javaScript:viewEvent(4);"><EM><I class="il-4"></I></EM><SPAN>中心介绍</SPAN></A>
       </DIV>
       <DIV class="piLeft">
			<div class="outNEWsDIV">
            	<H4><I class="i-news1"></I><A title="查看更多" href="#" class="inercolor">国内新闻<span>更多>></span></A></H4>
                <ul>
                	<li><a href="#"><span>1</span>中德缺陷消费品召回管理研讨会在京召开</a></li>
                    <li id="showlibgcolor"><a href="#"><span>2</span>广东省电动平衡车地方标准对企业征求意见</a></li>
                    <li><a href="#"><span>3</span>全国进出口商品质量安全风险管理工作推进部署会在我院召开</a></li>
                    <li id="showlibgcolor"><a href="#"><span>4</span>上海市质监局通报2015年风机产品质量监督抽查结果</a></li>
                    <li><a href="#"><span>5</span>2015年辽宁省电暖宝产品质量安全风险监测情况通报</a></li>
                    <li id="showlibgcolor"><a href="#"><span>6</span>质检总局:130家企业出现不良记录</a></li>
                    <li><a href="#"><span>7</span>质检总局召开专题发布会通报缺陷汽车产品和消费品召回情况等内容</a></li>
                </ul>
            </div>
			<div class="inerNEWsDIV">
            	<H4><I class="i-news2"></I><A title="查看更多" href="#" class="outscolor">国外新闻<span>更多>></span></A></H4>
                <ul>
                	<li><a href="#"><span>1</span>澳大利亚启动电动平衡车召回和消费警示程序</a></li>
                    <li id="showlibgcolor"><a href="#"><span>2</span>CPSC再次就电动扭扭车安全和调查进展发布声明</a></li>
                    <li><a href="#"><span>3</span>全国进出口商品质量安全风险管理工作推进部署会在我院召开</a></li>
                    <li id="showlibgcolor"><a href="#"><span>4</span>上海市质监局通报2015年风机产品质量监督抽查结果</a></li>
                    <li><a href="#"><span>5</span>2015年辽宁省电暖宝产品质量安全风险监测情况通报</a></li>
                    <li id="showlibgcolor"><a href="#"><span>6</span>质检总局:130家企业出现不良记录</a></li>
                    <li><a href="#"><span>7</span>质检总局召开专题发布会通报缺陷汽车产品和消费品召回情况等内容</a></li>
                </ul>
            </div>
            <div class="webregest">
            	<h4>缺陷消费品网上登记</h4>
                <div class="contentsshow">亲爱的消费者朋友,欢迎您来到国家质检总局缺陷消费品管理中心。在这里,您可以提交关于产品可能存在缺陷的登记采集。</div>
                <div class="imgshowdiv">
                	<a href="webregist.html" target="_blank"><div><em><i class="imgl-1"></i></em><span>网站登记</span></div></a>
                    <a href="#"><div><em><i class="imgl-2"></i></em><span>微信平台</span></div></a>
                    <a href="#" title="电话:010-53897451<br>传真:010-53897456" class="tooltip"><div><em><i class="imgl-3"></i></em><span>电话平台</span></div></a>
                    <a href="#" title="[email protected]" class="tooltip"><div><em><i class="imgl-4"></i></em><span>邮箱平台</span></div></a>
                </div>
            </div>
       </DIV>
</div>

<!--法律法规开始-->
	<div class="Newsdiv" id="show3" style="display:none;">
      <DIV class="indexBoxLeft">
        <A class="act" href="#" onmouseover="javaScript:viewEvent(1);"><EM><I class="il-1"></I></EM><SPAN>最新信息</SPAN></A>
        <A class="act1" href="#" onmouseover="javaScript:viewEvent(2);"><EM><I class="il-2"></I></EM><SPAN>新闻动态</SPAN></A>
        <A class="act2" href="#" onmouseover="javaScript:viewEvent(3);"><EM><I class="il-3"></I></EM><SPAN>法律法规</SPAN><B id="a3b"> </B></A>
        <A class="act3" href="#" onmouseover="javaScript:viewEvent(4);"><EM><I class="il-4"></I></EM><SPAN>中心介绍</SPAN></A>
       </DIV>
       <DIV class="piLeft">
			<!-- <div class="outNEWsDIV">
            	<H4><I class="i-news1"></I><A title="查看更多" href="#" class="inercolor">国内法规<span>更多>></span></A></H4>
                <ul>
                	<li><a href="#"><span>1</span>中德缺陷消费品召回管理研讨会在京召开</a></li>
                    <li id="showlibgcolor"><a href="#"><span>2</span>广东省电动平衡车地方标准对企业征求意见</a></li>
                    <li><a href="#"><span>3</span>全国进出口商品质量安全风险管理工作推进部署会在我院召开</a></li>
                    <li id="showlibgcolor"><a href="#"><span>4</span>上海市质监局通报2015年风机产品质量监督抽查结果</a></li>
                    <li><a href="#"><span>5</span>2015年辽宁省电暖宝产品质量安全风险监测情况通报</a></li>
                    <li id="showlibgcolor"><a href="#"><span>6</span>质检总局:130家企业出现不良记录</a></li>
                    <li><a href="#"><span>7</span>质检总局召开专题发布会通报缺陷汽车产品和消费品召回情况等内容</a></li>
                </ul>
            </div>    -->
            <laws:internal columnId="7" moreHref="#" lawsHref="#"/>
			<div class="inerNEWsDIV">
            	<H4><I class="i-news2"></I><A title="查看更多" href="#" class="outscolor">国外法规<span>更多>></span></A></H4>
                <ul>
                	<li><a href="#"><span>1</span>澳大利亚启动电动平衡车召回和消费警示程序</a></li>
                    <li id="showlibgcolor"><a href="#"><span>2</span>CPSC再次就电动扭扭车安全和调查进展发布声明</a></li>
                    <li><a href="#"><span>3</span>全国进出口商品质量安全风险管理工作推进部署会在我院召开</a></li>
                    <li id="showlibgcolor"><a href="#"><span>4</span>上海市质监局通报2015年风机产品质量监督抽查结果</a></li>
                    <li><a href="#"><span>5</span>2015年辽宁省电暖宝产品质量安全风险监测情况通报</a></li>
                    <li id="showlibgcolor"><a href="#"><span>6</span>质检总局:130家企业出现不良记录</a></li>
                    <li><a href="#"><span>7</span>质检总局召开专题发布会通报缺陷汽车产品和消费品召回情况等内容</a></li>
                </ul>
            </div>
           <a href="#"><div class="searchregestimg">
		    	<img src="${ctx}/images/fa1.jpg" width="216" height="118" /><span>质检总局发布《缺陷消费品召回管理办法》公告</span>
            </div></a>
            <a href="#"><div class="searchregestimg">
		    	<img src="${ctx}/images/fa2.jpg" width="216" height="118" /><span>全国进出口商品质量安全风险管理工作推进部署会在我院召开</span>
            </div></a>
            <a href="#"><div class="searchregestimg">
		    	<img src="${ctx}/images/fa4.jpg" width="216" height="118" /><span>中德缺陷消费品召回管理研讨会在京召开</span>
            </div></a>
            <a href="#"><div class="searchregestimg">
		    	<img src="${ctx}/images/fa3.png" width="216" height="118" /><span>进口消费品缺陷验证技术团队</span>
             </div></a>
       </DIV>
</div>

<!--中心介绍开始-->
<div class="Newsdiv" id="show4" style="display:none">
      <DIV class="indexBoxLeft">
        <A class="act" href="#" onmouseover="javaScript:viewEvent(1);"><EM><I class="il-1"></I></EM><SPAN>最新信息</SPAN></A>
        <A class="act1" href="#" onmouseover="javaScript:viewEvent(2);"><EM><I class="il-2"></I></EM><SPAN>新闻动态</SPAN></A>
        <A class="act2" href="#" onmouseover="javaScript:viewEvent(3);"><EM><I class="il-3"></I></EM><SPAN>法律法规</SPAN></A>
        <A class="act3" href="#" onmouseover="javaScript:viewEvent(4);"><EM><I class="il-4"></I></EM><SPAN>中心介绍</SPAN><B id="a4b"> </B></A>
       </DIV>
       <DIV class="piLeft">
   		 <div class="centerDivshow" style="width:500px;">
             <h4>中心介绍</h4>
             <div class="imgcontentsDiv"><img src="${ctx}/images/centerjj.png" /></div>
             <p>国家质检总局进出口工业与消费品风险评估中心(简称:风险评估中心)主要职责是开展基于风险管理的检验检疫基础理论体系研究、风险分析技术研究、进出口工业品检验监管科学研究和风险评估、进品缺陷消费品召回管理的技术支持和召回申报管理等......</p>
         </div>
         <div class="centerDivshow" style="width:440px;">
               <h3><a href="" style="color:#fff;">科研团队<span>更多>></span></a></h3>
                <div class="teamsperson rightbottom"><img src="${ctx}/images/tearm.jpg" /><br />白  桦</div>
                <div class="teamsperson rightbottom"><img src="${ctx}/images/tearm.jpg" /><br />马  强</div>
                <div class="teamsperson rightbottom"><img src="${ctx}/images/tearm.jpg" /><br />张  庆</div>
                <div class="teamsperson bottomline"><img src="${ctx}/images/tearm.jpg" /><br />肖海清</div>
                <div class="teamsperson rightline"><img src="${ctx}/images/tearm.jpg" /><br />王宏伟</div>
                <div class="teamsperson rightline"><img src="${ctx}/images/tearm.jpg" /><br />席广成</div>
                <div class="teamsperson rightline"><img src="${ctx}/images/tearm.jpg" /><br />李  焘</div>
         </div>
        <div class="tab">
            <ul><li>机电产品安全与能效实验室<b></b></li><li>纳米材料与产品检测实验室</li><li>消费品化学安全新技术研究实验室</li></ul>
            <div class="tab_content">
                <img src="${ctx}/images/sys01.jpg" align="left" />
                <p>  国家质检总局进出口机电产品安全与能效重点实验室,围绕国家产品质量安全战略和检验检疫工作需求,以与日常生活息息相关的电子电器产品为对象,开展电子电器产品中危害因子识别和风险评估技术研究、电子电器产品缺陷和失效分析研究、电子电器产品质量安全危害预防、预警、监控、应急和无害处置技术研究,研制电子电器产品质量安全检测设备,并开展相关技术服务工作......</p>
                <A title="查看更多" class="showMore" href="#"></A>
          </div>
            <div class="tab_content">
                <img src="${ctx}/images/sys02.jpg" align="left" />
                <p>  围绕消费品领域的人工纳米材料和纳米产品,重点开展消费品中人工纳米材料的识别和鉴定技术研究、纳米器件加工与组装技术研究、纳米技术现场快速或远程无损检测应用技术研究,并开展相关技术服务工作。<br />
                    目前,该实验室开展了基于纳米技术的危险气体传感器、电化学传感器、重金属离子检测、新型光触媒有害物质检测及消除、纳米材料风险分析等研究工作......</p>
                <A title="查看更多" class="showMore" href="#"></A>
            </div>
            <div class="tab_content">
                <img src="${ctx}/images/sys03.jpg" align="left" />
                <p>   消费品化学安全新技术研究实验室成立于2000年,以解决检验检疫工作中带有全局性、综合性、关键性和突发性的科学技术问题为主要任务,聚焦玩具、纺织品、建材等重点轻纺产品,紧紧围绕"保护消费者健康安全"这一核心目标,以应用型研究为工作重点,承担着轻纺产品检测标准与方法研究、检测设备研制、风险评估、培训及国内外技术交流等职责。多年来,消费品化学安全新技术研究室在消费品突发事件......</p>
                <A title="查看更多" class="showMore" href="#"></A>
            </div>
        </div>
    </div>
</div>
<!--页面底部链接代码-->
<div class="linksdiv">
    	<div class="linksleft">相关链接</div>
        <div class="linksright">
          <div>
              <select name="select" id="select">
                <option>---------国内相关网站---------</option>
                <option>国家质量监督检验检疫总局</option>
              </select>
              <select name="select" id="select">
                <option>---------国外相关网站---------</option>
                <option>国家质量监督检验检疫总局</option>
              </select>
              <select name="select" id="select">
                <option>---------其它相关网站---------</option>
                <option>国家质量监督检验检疫总局</option>
              </select>
          </div>
      </div>
    </div>
 <!--页面底部代码-->
    <div class="divbottom">
   	  <div class="linkword">关于我们 | 法律声明 | 隐私声明 | 网站导航</div>
        <div class="addressdiv">
          京ICP备11024642号-4 国家质检总局进出口工业与消费品风险评估中心 版权所有<br />
             地址:北京市亦庄经济技术开发区荣华南路11号 电话:010-53897451 传真:010-53897456<br />
             技术支持:深圳信城通数码科技有限公司
         </div>
    </div>
</div>
</body>
</html>

6、使用说明

1、在jsp页面引入

<%@ taglib uri="http://com.website.laws" prefix="laws" %>

2、然后再需要引入标签的地方插入

<laws:internal columnId="7" moreHref="#" lawsHref="#"/>

此处columnId、moreHref、lawsHref是必要的参数,然而还可以添加非必要参数number和titleLength;

3、使用Freemarker所需要的jar包

jsp-api-2.2.jar

freemarker-2.3.20.jar

4、标签后台和ftl模版的相对路径展示

7、展示效果

时间: 2024-10-26 03:22:44

Freemarker标签示例的相关文章

FreeMarker标签与使用

模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选择使用freemarker或velocity作为view,模板技术作为view的好处是很多,尤其和jsp比较起来优点更大,众所周知jsp需要在第一次被执行的时候编译成servlet,那么这个过程是很慢的,当然很多应用服务器都提供预编译的功能,但是在开发的时候仍然给我们程序员带来了很多痛苦,每次修改都

FreeMarker标签使用

FreeMarker标签使用 模板技术在现代的软件开发中有着重要的地位,主要用于view层的展示,freemarker是比较流行的一种. 一.FreeMarker模板文件主要有4个部分组成 ①文本,直接输出的部分  ②注释,即<#--...-->格式不会输出  ③插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出  ④FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出. 1.FTL指令规则 FreeMar

FreeMarker标签介绍

FreeMarker标签使用 一.FreeMarker模板文件主要有4个部分组成  1.文本,直接输出的部分  2.注释,即<#--...-->格式不会输出  3.插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出  4.FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出.    FTL指令规则    FreeMarker有三种FTL标签,这和HTML的标签是完全类似的     开始标签:<#dir

关于freemarker标签

1. String内置的JavaScript转换: js_string 用途:用于JavaScript转义,转换',",换行等特殊字符 模板: <script> alert("${errorMessage?js_string}"); </script> 输出: <script> alert("Readonly\'s pet name is \"Cross Bone\""); </script&g

String强制转换为Date,freemarker标签里date数据的显示问题

String强制转换为Date,freemarker标签里date数据的显示问题 http://blog.sina.com.cn/s/blog_617f5d090101ut63.html (2014-05-16 16:44:34) 转载▼   分类: 工作 解决了两个问题 1. String强制转换为Date SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");    String dateStr = request.g

freemarker 标签循环list 以及获取下标值

<#if userList?exists> <#list userListas item> <tr> <td>${item_index?if_exists+1}</td>//获取循环下标值,默认是从0开始的. <td>${item.userName?if_exists}</td> </td> </#list> </#if> freemarker 标签循环list 以及获取下标值

freeMarker入门示例

1.创建Web项目freeMarkerDemo. 2.添加jar包---freemarker-2.3.9.jar. 3.在WebContent目录下新建templates文件夹,用于放置模板文件ftl. 4.在templates目录下新建hello.ftl. <html> <head> <title>Hello!</title> </head> <body> <h1>hello ${user}!</h1> &l

freemarker标签大全

FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${book.name?if_exists }  //用于判断如果存在,就输出这个值 ${book.name?default('xxx')}//默认值xxx ${book.name!"xxx"}//默认值xxx ${book.date?string('yyyy-MM-dd')} //日期格式 ${book?string.number}  20 //三种

关于freemarker标签+Spring3.0 V层学习

import标签 就是把其他的ftl页面引用进来 <#import "/common/ui.ftl" as ui> 使用时 <@ui.message/>,message是存在于/common/ui.ftl文件内的macro assign标签 这个标签就是单纯的赋值语句,例如我们在后台放到modelmap里一个javabean modelmap.put("javabean", javabean); 前台就可以使用assign把javabean的