Problem with calendar

UI Components for JSF
Post Reply
glister
Posts: 64
Joined: 19 Jan 2010, 11:39

08 Feb 2010, 13:38

Hey,

in my JSF Page i have a calendar component included :

Code: Select all

      <div class="element">
                        <p:calendar value="#{createOrder.orderDate}" id="szDate" mode="popup" locale="de" startWeekday="1" pattern="dd.MM.yyyy" required="true" requiredMessage="Datum wird benötigt" />
                        <h:message for="szDate" styleClass="error" />
       </div>
createOrder.orderDate is defined as a String in my backing bean.

There is a separate input Element in my form to get a currency.

Code: Select all

                    <div class="element">
                        <h:inputText required="true" id="dblKosten" size="20" maxlength="40" value="#{createOrder.dblGesamtkosten}" >
                        </h:inputText>
                        <h:message for="dblKosten"></h:message>
                     </div>
In my Backing Bean i validate and convert the currency to BigDecimal. if the validate Method returns null, a FacesMessage returns.


So now to my problem. If i type 126, in my currency input and submit, i get the following error:

Code: Select all

java.lang.IllegalArgumentException: Cannot format given Object as a Date
	at java.text.DateFormat.format(DateFormat.java:281)
	at java.text.Format.format(Format.java:140)
	at org.primefaces.component.calendar.CalendarRenderer.getValueAsString(CalendarRenderer.java:261)
	at org.primefaces.component.calendar.CalendarRenderer.encodeScript(CalendarRenderer.java:77)
	at org.primefaces.component.calendar.CalendarRenderer.encodeEnd(CalendarRenderer.java:49)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
	at java.lang.Thread.run(Thread.java:619)
if i type 126,00 ... no error like above occurs. :shock:

any idea ???



Regards,

glister



// EDIT

i traced through the DateFormat.java source to find the error :

He calls the format() Method where

obj = (String) "Mon Feb 08 00:00:00 CET 2010"

Code: Select all

    public final StringBuffer format(Object obj, StringBuffer toAppendTo,
                                     FieldPosition fieldPosition)
    {
        if (obj instanceof Date)
            return format( (Date)obj, toAppendTo, fieldPosition );
        else if (obj instanceof Number)
            return format( new Date(((Number)obj).longValue()),
                          toAppendTo, fieldPosition );
        else 
            throw new IllegalArgumentException("Cannot format given Object as a Date");
    }
I hope its helps ... :)
PrimeFaces version:
using Primefaces 5.2.11 on a Glassfish v4.1 Server

Additional Libraries:
using PrimeFaces Extensions 3.2
using OmniFaces 2.1

Additional Books:
PrimeFaces Cookbook

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

08 Feb 2010, 14:49

Hi,

Why createOrder.orderDate is a String? Calendar works with java.util.Date type values.

glister
Posts: 64
Joined: 19 Jan 2010, 11:39

08 Feb 2010, 15:03

Hey cagatay.civici,

don't know why .... but i thought input components works with Strings, thank you.

my shame :oops:


glister
PrimeFaces version:
using Primefaces 5.2.11 on a Glassfish v4.1 Server

Additional Libraries:
using PrimeFaces Extensions 3.2
using OmniFaces 2.1

Additional Books:
PrimeFaces Cookbook

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

08 Feb 2010, 16:12

No problem, does it work now?

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 26 guests