`
raymond.chen
  • 浏览: 1436963 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多

一、标签源代码

public class CalendarYearTag extends BaseBodyTagSupport {
	private String name; //控件名
	private int negativeOffset; //负方向的偏移量
	private int positiveOffset; //正方向的偏移量
	private String allowEmpty = "true"; //是否可以为空
	private String defaultCurrent = "false"; //是否默认取当前年份
	
	public int doEndTag() throws JspException {
		if(negativeOffset < 0) negativeOffset = 0;
		if(positiveOffset < 0) positiveOffset = 0;
		
		Calendar cal = DatetimeUtil.getCalendar();
		int curYear = cal.get(Calendar.YEAR);
		
		Map dataModel = new HashMap();
		dataModel.put("name", CommonUtil.trim(name));
		dataModel.put("negativeOffset", new Long(negativeOffset));
		dataModel.put("positiveOffset", new Long(positiveOffset));
		dataModel.put("allowEmpty", CommonUtil.trim(allowEmpty));
		dataModel.put("defaultCurrent", CommonUtil.trim(defaultCurrent));
		dataModel.put("curYear", new Long(curYear));
		
		try{
			String ret = render(pageContext.getServletContext(), dataModel, "taglib/CalendarYear.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 curYear+positiveOffset..curYear-negativeOffset as y>
		<option value="${y?string('####')}" <#if defaultCurrent=="true" && curYear==y> selected</#if>>${y?string('####')}年</option>
	</#list>
</select>

 

三、属性说明

     name:指定控件的名称。
     negativeOffset:相对当前年份的往年方向的偏移量。必须为整型值,当值小于0时,会被重置为0。
     positiveOffset:相对当前年份的未来年方向的偏移量。必须为整型值,当值小于0时,会被重置为0。
     allowEmpty:指定是否可以选择空值。可选值为:true 或 false。默认值为true。
     defaultCurrent:指定默认值是否为当前年份值。可选值为:true 或 false。默认值为false。

 

四、范例

    

<cjm:calendarYear name="year" negativeOffset="5" positiveOffset="2" allowEmpty="false" defaultCurrent="true"/>

 

分享到:
评论

相关推荐

    漂亮的js下拉框日历控件

    本文将详细介绍一个名为“漂亮的js下拉框日历控件”的组件,它适用于.NET和JSP环境,能够为用户提供便捷、美观的日期选择体验。 首先,这个控件结合了JavaScript(JS)和HTML,以创建一个动态的下拉框日历。...

    asp.net 真正的下拉日期控件

    1. **下拉样式**:控件可能由一个文本框和一个下拉箭头组成,点击箭头后会展开一个下拉列表,显示月份和年份,用户可以滚动选择。 2. **日期导航**:下拉列表中可能包含向前和向后的按钮,方便用户在不同月份之间...

    Qt 滚动 日期 选择器 循环选择

    默认情况下,`QDateTimeEdit`提供了日期和时间的下拉框选择,但不直接支持循环滚动。为了实现循环选择,我们需要对其进行一些定制。 1. **自定义`QDateTimeEdit`**: 创建一个新的类,继承自`QDateTimeEdit`,并在...

    javascript日期控件五

    1. 用户友好:控件应该具有直观的用户界面,使得用户能够轻松地选择日期,可能是通过下拉框、日历图标或者其他交互方式。 2. 自定义配置:允许开发者调整控件的外观和行为,如颜色主题、显示模式(日、周、月视图)...

    Android 自定义 弹框,日期选择器 弹框,年月日,时分,

    此外,如果你想要更高级的定制,比如滑动选择年份或月份,或者具有更美观的UI设计,可以考虑使用第三方库,如MaterialDateTimePicker,它可以提供Material Design风格的日期和时间选择器。 综上所述,创建一个...

    各种滑动联动控件

    滑动城市选择控件: 滑动城市选择控件通常包含一个包含各国、各地区城市的列表,用户可以通过滑动找到并选择所需的城市。这种控件适用于需要定位或选择服务提供地的应用。为了提高效率,控件可能会按照字母顺序或...

    csdn上设计年月的日期控件汇总

    在IT领域,尤其是在前端开发中,设计年月的日期控件是常见的用户界面元素,用于用户选择特定的年份和月份。这篇“csdn上设计年月的日期控件汇总”资源集合提供了一系列的设计方案,旨在帮助开发者们找到适合他们项目...

    JS时间控件,点击就能实现效果

    控件的年、月、日、时、分、秒输入框都支持三种选择方式:通过导航图标选择、键盘输入数字以及从下拉框中直接选择。对于年份输入框,如果用户连续点击同一个导航按钮5次,系统会自动弹出年份下拉框。 3. **周显示...

    c#日期下拉框(年月日)判断平年闰年生肖

    可以创建一个自定义事件,当用户选择年份时触发,动态更新月份下拉框的选项,以及每一天的选项。 至于生肖,中国传统的农历生肖与公历(阳历)年份对应,每个生肖周期为12年,从甲子年开始,按照鼠、牛、虎、兔、龙...

    silverlight自定义日历插件

    2. 创建按钮或下拉框来切换月份和年份。 3. 在Grid的特定单元格内放置表示日期的小矩形,可以通过DataTemplate来定制每个日期单元格的样式。 4. 可选地,添加事件标记,如圆点或图标,用于表示特定日期有事件。 四...

    年月日三联动,时间控件

    年月日三联动时间控件是一种常见的用户界面元素,它允许用户通过三个相互关联的下拉框分别选择年、月和日,以精确地输入日期。这种控件在各种Web应用和桌面应用中广泛使用,尤其适用于需要用户输入日期的情况。下面...

    win8风格的年月日选择控件

    这个CSS文件将规定日期选择器的各个部分(如年份、月份和日期的下拉框)的样式,包括字体、颜色、边框、背景色等,以确保与Windows 8的视觉语言一致。 "index.html"是主页面文件,它包含了HTML结构,定义了页面的...

    C#日历控件(可选年)

    3. **界面交互**:通过`JavaScript`或者`jQuery`,开发者可能在前端实现了更好的交互效果,比如年份选择的下拉框动态加载,或者在选择年份后自动切换到相应年份的首月。 4. **样式定制**:为了提升用户体验,开发者...

    web端 日期选择器 月份选择器 时间选择器 时间范围选择器

    "month.html"很可能包含了不同的月份选择器实现,可能有简单的下拉框形式,也可能是具有滚动效果的月份滑块,或者是可自定义起始年的月份选择器。 3. **时间选择器** 时间选择器允许用户选择或输入小时和分钟,...

    时间日期选择控件

    在网页开发中,时间日期选择控件是一种常见的交互元素,它允许用户方便地选取日期或时间,而无需手动输入,从而提高用户体验。本教程将详细讲解如何使用JavaScript编写一个时间控件。 首先,我们需要理解JavaScript...

    JS时间控件(年月日时分秒)

    2. **事件处理**:为了实现交互,需要为时间控件的各个部分绑定点击事件,如点击年份下拉框、月份选择器等。事件监听器可以使用`addEventListener`方法添加。 3. **日期和时间处理**:JavaScript的`Date`对象是处理...

    js日历控件大全(源代码)

    1. 基础型:简单的弹出式日历,只显示月份和日期,通常有一个下拉框供用户选择年份。 2. 高级型:包含更多功能,如日期范围选择、时间选择、节假日标记等。 3. 滑动型:允许用户通过滑动来切换月份。 4. 模态型:...

    JQuery--只选择年月的日期控件

    在给定的标题"JQuery--只选择年月的日期控件"中,我们讨论的是一个特定的jQuery插件或功能,该功能允许用户在网页上仅选择年份和月份,而不是完整的日期。这种控件对于那些只需要处理年月信息的场景非常有用,比如...

    qt中qdateedit无法设置月份的解决方法

    默认的日期选择器只允许用户通过下拉框选择年、月、日,而不支持单独设置月份。 遇到QDateEdit无法设置月份的问题,可能是由于以下原因: 1. 错误的日期格式:确保使用的日期格式正确,遵循"yyyy-MM-dd"的国际标准...

    史上最强JavaScript日历控件正式版(无偿的永久的提供给大家免费使用,含全部源代码)

    有时在项目中需要选择生日之类的日期,而默认点开始日期都是当前日期,导致年份选择非常麻烦,你可以通过起始日期功能加上配置alwaysUseStartDate属性轻松解决此类问题 自定义格式(注意大小写) yMdHmswW分别代表年月...

Global site tag (gtag.js) - Google Analytics