自定义标签:下拉框月份选择控件
程序员文章站
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"/>
上一篇: JDBC获得数据库生成的主键
推荐阅读