欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自定义标签:下拉框月份选择控件

程序员文章站 2022-06-09 09:37:09
...

一、标签源代码

public class CalendarMonthTag extends BaseBodyTagSupport {
	private String name;
	private String allowEmpty = "true";
	private String defaultCurrent = "false";
	
	public int doEndTag() throws JspException {
		Calendar cal = DatetimeUtil.getCalendar();
		int curMonth = cal.get(Calendar.MONTH);
		
		Map dataModel = new HashMap();
		dataModel.put("name", CommonUtil.trim(name));
		dataModel.put("allowEmpty", CommonUtil.trim(allowEmpty));
		dataModel.put("defaultCurrent", CommonUtil.trim(defaultCurrent));
		dataModel.put("curMonth", new Long(curMonth+1));
		
		try{
			String ret = render(pageContext.getServletContext(), dataModel, "taglib/CalendarMonth.ftl");
			pageContext.getOut().println(ret);
			
		}catch(Exception ex){
			throw new JspException(ex);
		}
		
		return EVAL_PAGE;
	}
}

 

二、FTL模板

<select name="${name}">
	<#if allowEmpty=="true">
		<option value=""></option>
	</#if>
	<#list 1..12 as m>
		<option value="<#if m lt 10>0</#if>${m?string('####')}" <#if defaultCurrent=="true" && curMonth==m> selected</#if>><#if m lt 10>0</#if>${m?string('####')}月</option>
	</#list>
</select>

 

三、属性说明

     name:指定控件的名称。
     allowEmpty:指定是否可以选择空值。可选值为:true 或 false。默认值为true。
     defaultCurrent:指定默认值是否为当前年份值。可选值为:true 或 false。默认值为false。

 

四、范例

<cjm:calendarMonth name="month" allowEmpty="false" defaultCurrent="true"/>

 

相关标签: 标签