`
nmw02229
  • 浏览: 8350 次
社区版块
存档分类
最新评论

依葫画瓢:自定义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>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics