依葫画瓢:自定义liferay的日期控件
liferay的日期tag由于是美国人做的,是按照月,日,年顺序来显示的.
如果需要按照年,月,日的顺序显示,又不要改掉原来的代码,那就只有自己自定义了.
参照原来的代码做以下几个步骤:
1. 拷贝
拷贝/html/taglib/ui/input_date 到自己的目录. 比如:/html/taglib/ui-ext/input_date
2. 修改显示顺序
修改/html/taglib/ext/input_date/page.jsp中的代码.
<c:choose>
<c:when test="<%= monthAndYearParam.equals(namespace) %>">
<%
int[] monthIds = CalendarUtil.getMonthIds();
String[] months = CalendarUtil.getMonths(locale);
%>
<%@ include file="select_month.jspf" %>
</c:when>
</c:choose>
<%@ include file="select_day.jspf" %>
<%@ include file="select_year.jspf" %>
把 <%@ include file="select_year.jspf" %>放到最前面.
3. 实现自己的tag类
拷贝com.liferay.taglib.ui.InputDateTag类到自己的包里面,然后把PAGE改为自己的jsp.
private static final String _PAGE = "/html/taglib/ext/input_date/page.jsp";
4. 在自己的portlet中定义tld
/Test-portlet/docroot/WEB-INF/tld/liferay-ui-ext.tld
拷贝liferay的date的定义,修改<tag-class>为第3步的类.
5. jsp中引入定义.
<%@ taglib uri="/WEB-INF/tld/liferay-ui-ext.tld" prefix="liferay-ui-ext"%>
6. 使用
<liferay-ui-ext:input-date
yearParam="year"
monthParam="month"
dayParam="day"
yearRangeEnd="2015"
yearRangeStart="2010">
</liferay-ui-ext:input-date>
猜你喜欢
转载自nmw02229.iteye.com/blog/1732680
今日推荐
周排行