JSF Primefaces 10: Как динамически установить атрибут maxdate p:DatePicker на десятки лет вперед?

#jsf #primefaces #el

Вопрос:

Я использую Java 1.8, начальные шрифты 10.0.0 на Tomcat 8.5.55… Я довольно новичок в программировании пользовательского интерфейса JSF. Есть пользовательский тег JSTL даты, в котором мне нужно динамически установить maxdate значение через 10 лет при использовании виджета календаря ( p:datePicker ) — это универсальный, поэтому я не могу поместить его в пользовательский компонент. Он должен быть установлен декларативно внутри моего input.xhtml файла (см. Ниже).:


pom.xml:

 <properties>
    <primefaces-version>10.0.0</primefaces-version>
    <primefaces-extension-version>10.0.1</primefaces-extension-version>
</properties>

 <dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces</artifactId>
    <version>${primefaces-version}</version>
</dependency>

<dependency>
    <groupId>org.primefaces.extensions</groupId>
    <artifactId>primefaces-extensions</artifactId>
    <version>${primefaces-extension-version}</version>
</dependency>
 

input.xhtml (пользовательский taglib, расположенный внутри ..src/main/webapp/WEB-INF/tags/input.xhtml ):

 <ui:composition xmlns:c="http://java.sun.com/jsp/jstl/core"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:d="http://www.mycompany.com/jsf/facelets"
                xmlns:ui="http://java.sun.com/jsf/facelets">

    <p:datePicker id="#{id}" value="#{bean[property]}" rendered="#{rendered}"
                disabled="#{disabled}"
                pattern="MM/dd/yyyy"
                required="#{required}" requiredMessage="#{requiredMessage}" timeZone="#{timeZone}"
                mindate="1/1/2011"
                maxdate="#{LocalDate.now().plusYears(10)}"
                mask="99/99/9999">
        <c:if test="#{not empty event}">
            <p:ajax event="#{event}" update="#{update}"/>
            <p:ajax event="dateSelect" update="#{update}" oncomplete="#{oncomplete}"/>
        </c:if>
    </p:datePicker>

</ui:composition>
 

Мои mindate работы — я не могу зайти раньше 1/1/2011 в свой виджет календаря.

Но я могу пройти далеко за 2031 год в своем виджете календаря.

Как я могу установить maxdate значение через 10 лет только в input.xhtml файле?

Комментарии:

1. @BalusC — почему вы удалили все комментарии из этого поста?