javaweb框架--自定义标签与freemaker结合


很有用但是不不知道怎么说,写个例子,总之方便多了,并且容易管理,重复利用强

javaweb框架--自定义标签与freemaker结合_第1张图片

1、自定一个类,实现 javax.servlet.jsp.tagext.Tag;(PageTag.java)

2、建立一个tld文件(myfTag.tld)

3、建立一个freemaker文件*.ftl(page.ftl)

4、建立jsp页面,导入标签(<%@taglib prefix="myf" uri="/muyunfei"%>)

5、jsp中使用( 

6、效果javaweb框架--自定义标签与freemaker结合_第2张图片,以后使用很方便,如果需要修改直接改freemaker就可以

 

---------------------------------tag类开始------------------------------------------

 

public class PageTag  implements Tag {

	public PageContext pagecontex;
	public JspWriter out;
	
	//自定义属性,当前页
	private String curpage;
	
	//自定义属性,跳转路径
	private String action;
	
	//设置页面内容
	public void setPageContext(PageContext pc) {
		pagecontex = pc;
		out = pc.getOut();
		//再次方法中不能获取属性值
	}
	
	//结束
	@SuppressWarnings("unchecked")
	public int doEndTag() throws JspException {

/*freemarker生成模板...开始*/
		 Configuration cfg = new Configuration();
	     //指定freemarker模板位置
	     cfg.setServletContextForTemplateLoading( pagecontex.getServletContext(), "WEB-INF/templates");

			try {
				Map root = new HashMap();
				root.put("curpage", curpage);
				root.put("action", action);
				root.put("path",pagecontex.getServletContext().getContextPath());
				//得到模板
				Template templ = cfg.getTemplate("page.ftl");
				//输出模板
				templ.process(root, out);
			} catch (TemplateException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
/*freemarker生成模板...结束*/
	     return 0;
			
	}

	//开始
	public int doStartTag() throws JspException {
		return 0;
	}

	public Tag getParent() {
		return null;
	}

	//释放控件
	public void release() {
		
	}
	public void setParent(Tag t) {
		
	}

	//-----------get set
	
	public String getCurpage() {
		return curpage;
	}

	public void setCurpage(String curpage) {
		this.curpage = curpage;
	}

	public String getAction() {
		return action;
	}

	public void setAction(String action) {
		this.action = action;
	}

}

---------------------------------tag类结束------------------------------------------

 

---------------------------------tld文件开始------------------------------------------




    
  JSTL tagTest core library
  myTag
  1.1
  myf
  /muyunfei
 

  
    
        pageTag
    
    page
    tag.mytag.page.PageTag
    JSP
    
    
        curpage
        true 
        false  
    
    
        action
        true 
        true  
    
  


---------------------------------tld文件结束------------------------------------------

 

---------------------------------freemaker文件*.ftl(page.ftl)     开始------------------------------------------

  最后页
  后一页
 页/共
 第 
  前一页
第一页
共有记录

---------------------------------freemaker文件*.ftl(page.ftl)     结束------------------------------------------

 

---------------------------------jsp页面     开始------------------------------------------

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="myf" uri="/muyunfei"%>


  
    My JSP 'myftag.jsp' starting page
  
  
  
    自定义控件使用: 


---------------------------------jsp页面     结束------------------------------------------

 

你可能感兴趣的:(javaweb框架--自定义标签与freemaker结合)