Beetl 사용자 정의 태그 (1) 바인딩 변수 값

JFinal의 경우 여기서 dao 처리
import java.util.List;
import net.zhuawa.ext.btl.tag.pojo.ParamSql;
import net.zhuawa.ext.btl.tag.util.ParamSqlUtil;
import org.beetl.core.BodyContent;
import org.beetl.core.GeneralVarTagBinding;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;

public class Out_SqlQueryListTag extends GeneralVarTagBinding {
	
	private String sql;
	private String attribute;
	private Integer pagesize;
	
	public void init(){
		String _sql = getAttributeValue("sql") != null ? getAttributeValue("sql").toString() :null;
		Integer _pagesize = getAttributeValue("pagesize") != null ? Integer.parseInt(getAttributeValue("pagesize").toString()) :0;
		setSql(_sql);
		setPagesize(_pagesize);
	}
	
	@Override
	public void render() {
		init();
		BodyContent bodyContent = getBodyContent();
		ParamSql paramSql = ParamSqlUtil.parseXml(bodyContent.getBody(),"param");
		String paramSqls = "";
		Object[] paramVaues = new Object[]{};
		if(null != paramSql){
			paramSqls = paramSql.getSql();
			paramVaues = paramSql.getObjects().length > 0 ? paramSql.getObjects() : paramVaues;
		}
		List<Record> queryList = Db.find(new StringBuilder(sql).toString().replace(":paramSql",paramSqls),paramVaues);
		this.binds(queryList);
		this.doBodyRender();
	}
	
	public String getSql() {
		return sql;
	}
	public void setSql(String sql) {
		this.sql = sql;
	}
	public Integer getPagesize() {
		return pagesize;
	}
	public void setPagesize(Integer pagesize) {
		this.pagesize = pagesize;
	}
}

등록 레이블 여기서는 JFinal을 예로 들 수 있습니다.
GroupTemplate groupTemplate = JFinalRenderFactory.groupTemplate;
groupTemplate.registerTag("O_SqlQueryList",Out_SqlQueryListTag.class);

템플릿 호출은 탭 밖에서 호출할 수 있습니다
<#O_SqlQueryList sql="select * from [your_table] where 1= 1 :paramSql  order by  id " pagesize="15"; list>
  <ParamSql>
    <param sql = " and col_a = "a"  />
    <param sql = " and col_b = "b"  />
  </ParamSql>
  <%var _list = list;%>
</#O_SqlQueryList>
<% for(entity in _list ){ %>
  ${entity["col_a"]}
<% } %>

좋은 웹페이지 즐겨찾기