[ 
https://issues.apache.org/struts/browse/WW-2176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_42370
 ] 

Amaury Crickx commented on WW-2176:
-----------------------------------

Yes, you're right.

But I'd like to mention I went down the road of adding methods to my base 
action and found my class bloated with all kinds of things that really didn't 
belong there...
IMHO, OGNL is really great but can bring bad habits...

When the business requirements changed and changed again while the presentation 
still had to remain approximatively the same and I realized I should really 
have used some kind of presentation model specific to my web app. So I 
refactored it out injecting the locale into that view model and suddenly these 
view objects became the perfect place to place for the required formatting 
(Sometimes using static helper methods in a common util class). 

I also use specific form classes when it comes to updating the model.

This brings lots of boiler plate code (get/set mostly delegating to the wrapped 
object for the views, form class hierarchy/relationships that often mimics the 
business model hierarchy/relationships)
But in the end the flexibility gained is well worth the price.

In the end, nothing really astonishing I think: I just placed my presentation 
logic into my presentation model instead of the controller. 
 

Yet: I'd say IMHO parsing using locale and formatting without is not an 
intuitive behavior for a framework like Struts. 

> In Turkish locale "TR" double values are multiplied by ten on every page load
> -----------------------------------------------------------------------------
>
>                 Key: WW-2176
>                 URL: https://issues.apache.org/struts/browse/WW-2176
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 
> 2.0.8, 2.0.9, 2.1.0
>         Environment: Windows XP, java 5 and java 6
>            Reporter: Ömer Başar
>            Priority: Blocker
>             Fix For: 2.0.12
>
>         Attachments: struts2locale_error.avi
>
>
> The steps to get the error.
> 1 - Change your locale to "TR" (Turkish)
> 2 - go to edit employee page on showcase application - 
> http://www.planetstruts.org/struts2-showcase/employee/save.action
> 3 - Fill only the salary field with "10"
> 4 - Press Save, it shows the required fields and makes the salary field "10.0"
> 5 - Press Save again without editing anything, it gives the error for 
> required fields and makes the salary field "100.0"
> 6 - Alter the salary field. Make it "100,0" (change dot with comma)
> 7 - press save, here it is not multiplied by 10, but it changes the salary 
> field value from "100,0" to "100.0" again.
> Here is the problem. In Turkish(TR) locale the decimal separator is "comma", 
> not "dot". So it doesn't convert them according to the TR locale which is the 
> locale of my browser. When I press save at the 4th and 5th steps it should 
> write "10,0" using the locale of the browser. 
> Note : When I change my locale to "EN" everything works fine. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to