[ 
https://issues.apache.org/jira/browse/WW-5810?focusedWorklogId=1049910&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-1049910
 ]

ASF GitHub Bot logged work on WW-5810:
--------------------------------------

                Author: ASF GitHub Bot
            Created on: 24/Oct/26 14:02
            Start Date: 24/Oct/26 14:02
    Worklog Time Spent: 10m 
      Work Description: Copilot commented on code in PR #2056:
URL: https://github.com/apache/struts/pull/2056#discussion_r4367351757


##########
plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/DateTextFieldHandler.java:
##########
@@ -102,6 +102,20 @@ public void generate() throws IOException {
         }
         
     }
+
+    protected String formatValue(Object value, DateWord dateWord) {
+        if (value instanceof Date date) {
+            return new SimpleDateFormat(dateWord.getDateType()).format(date);
+        }
+        if (value instanceof TemporalAccessor temporal) {
+            try {
+                return 
DateTimeFormatter.ofPattern(dateWord.getDateType()).format(temporal);

Review Comment:
   With the JVM's default FORMAT locale set to `th-TH`, a `LocalDate` of 
`2026-10-24` renders year `2026`, but `DateTextFieldInterceptor` parses it as a 
Buddhist year using `SimpleDateFormat`. Submitting an unchanged form therefore 
binds a different date. Align the temporal renderer and interceptor calendars 
while preserving existing `Date` bindings, and add a render-to-binding 
regression test for this locale.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 1049910)
    Time Spent: 50m  (was: 40m)

> Support java.time types in the datetextfield tag
> ------------------------------------------------
>
>                 Key: WW-5810
>                 URL: https://issues.apache.org/jira/browse/WW-5810
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Core Tags
>            Reporter: Lukasz Lenart
>            Assignee: Lukasz Lenart
>            Priority: Major
>             Fix For: 7.5.0
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> h2. Problem
> {{datetextfield}} only works with {{java.util.Date}} properties:
> * The JavaTemplates {{DateTextFieldHandler}} casts the value straight to 
> {{java.util.Date}}, so a {{LocalDate}} property fails with a 
> {{ClassCastException}}
> * {{DateTextFieldInterceptor}} reassembles the split fields with 
> {{SimpleDateFormat}} and always sets a {{java.util.Date}}
> * The html5 template added in WW-5778 renders the ISO {{yyyy-MM-dd}} value 
> from {{java.util.Date}} only
> {{input type="date"}} maps naturally to {{java.time.LocalDate}}, which is the 
> type most applications now use for a date without a time.
> h2. Proposal
> Support {{java.time}} property types (at least {{LocalDate}}) in 
> {{datetextfield}}:
> * html5 theme: render the ISO {{yyyy-MM-dd}} value for {{LocalDate}} (and 
> define the behaviour for {{LocalDateTime}} / {{ZonedDateTime}} etc. — 
> truncate to the date, or reject)
> * JavaTemplates theme: format the split fields from {{java.time}} values and 
> have {{DateTextFieldInterceptor}} set the property's declared type
> * Tests for each supported type, and the tag reference updated to list them
> Related: WW-5778 (datetextfield in the html5 theme)



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to