[
https://issues.apache.org/jira/browse/TRINIDAD-1550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743418#action_12743418
]
Eric Price commented on TRINIDAD-1550:
--------------------------------------
Yes, the values are different each time, and with the sample program, you can
type new date/time values or have them set programmatically.
I think I understand your explanation of what the converter/code is doing. But
that also means that the converter is handling the two types differently: when
the type="time", the date values are zero-ed out. But when the type="date",
the time values are not zero-ed out. It's just inconsistent.
Wouldn't the zeroing out of the date portion when type="time" also generate the
value change?
> convertDateTime handles type="date" incorrectly
> -----------------------------------------------
>
> Key: TRINIDAD-1550
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1550
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Components
> Affects Versions: 1.2.10-core
> Environment: Linux 64-bit, Java 1.5.0_11
> Reporter: Eric Price
> Priority: Minor
>
> I have a backing bean that contains two HtmlInputText components. One stores
> the "date" part of a Date, the other stores the "time" part of a Date. When
> the user enters the information, the "date" and "time" are combined to form
> the actual Date.
> The bean has the following declarations:
> public class DateTestBean {
> private HtmlInputText dateInput = null;
> private HtmlInputText timeInput = null;
> private Date date = null;
> private Date time = null;
>
>
> public DateTestBean() {
> dateInput = new HtmlInputText();
> timeInput = new HtmlInputText();
>
> date = Calendar.getInstance( TimeZone.getTimeZone( "GMT" ) );
> time = (Date)date.clone();
> }
> }
> For my sample program, I have a button on the jsp that calls the action
> method setDateAction() to update the date/time values with current values.
> That method is shown below:
> public String setDateAction() {
> Calendar dateCal = Calendar.getInstance( TimeZone.getTimeZone( "GMT" ) );
> Calendar timeCal = (Calendar)dateCal.clone();
>
> dateInput.setValue( dateCal.getTime() );
> timeInput.setValue( timeCal.getTime() );
>
> date = dateCal.getTime();
> time = timeCal.getTime();
> return "success";
> }
> There is a corresponding action method associated with a submit button on the
> jsp that prints the date/time values when the page is submitted.
> public String displayDateAction() {
> Object valObj = this.dateInput.getValue();
>
> if (valObj instanceof Date) {
> System.out.println(" date=" + formatDate( (Date)valObj ) );
> }
>
> valObj = this.timeInput.getValue();
> if (valObj instanceof Date) {
> System.out.println( " time=" + formatDate( (Date)valObj ) );
> }
> }
> Here is the code snipit from the jsp:
> <t:panelGrid columns="2">
> <t:inputText binding="#{dateTestBean.dateInput}" size="10" maxlength="10"
> immediate="true" value="#{dateTestBean.date}" title="yyyy-MM-dd"
> id="dateInput">
> <f:convertDateTime type="date" pattern="yyyy-MM-dd"/>
> </t:inputText>
>
> <t:inputText binding="#{dateTestBean.timeInput}" size="8" maxlength="8"
> immediate="true" value="#{dateTestBean.time}" title="HH:mm:ss"
> id="timeUpStartTimeInput">
> <f:convertDateTime type="time" pattern="HH:mm:ss"/>
> </t:inputText>
> </t:panelGrid>
> <t:panelGrid columns="2">
> <t:commandButton value="Set Date" action="#{dateTestBean.setDateAction}"/>
> <t:commandButton value="Show Date"
> action="#{dateTestBean.displayDateAction}"/>
> </t:panelGrid>
> When I submit the page, I see different values for the date and time
> depending on whether or not I'm using the trinidad rendering kit.
> When the page loads the date and time fields are set to the correct "date"
> and "time" values. When the page is submitted, I see the following:
> Under MyFaces 1.1.4 (or JSF 1.1), Java 1.5, tomahawk 1.1.3 and assuming the
> date was 12:20:32 on Aug 4th 2009, I get:
> date = '2009-08-04 00:00:00'
> time= '1970-01-01 12:20:32'
> Similarly, under MyFaces 1.2.6 (or JSF 1.2), Java 1.5, tomahawk 12-1.1.8 and
> assuming the date was 12:20:32 on Aug 4th 2009, I get:
> date = '2009-08-04 00:00:00'
> time= '1970-01-01 12:20:32'
> So if I combine the two values when the page is submitted, I end up with
> '2009-08-04 12:20:32', which is the correct submit date/time.
> Under MyFaces 1.2.6 (or JSF 1.2), Java 1.5, trinidad-1.2.10, and assuming the
> same date/time values are set, I get:
> date= '2009-08-04 12:20:32'
> time= '1970-01-01 12:20:32'
> So the convertDateTime with type="date" is not zero-ing out the time field
> values, but the one with type="time" is zero-ing out the date field values.
> I've done a lot of testing and originally thought the problem with with
> myFaces 1.2. But I eventually discovered that the problem occurs if I
> include the following in the faces-confg.xml regardless of whether or not I
> have any trinidad components in the page:
> <default-render-kit-id>
> org.apache.myfaces.trinidad.core
> </default-render-kit-id>
> This inclusion in the faces-config.xml also requires me to include the
> trinidad-1.2.10 libraries in my web app.
> Including these two items leads to the errant behavior of the convertDateTime
> with type="date" not zero-ing out the time fields of the date.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.