[ https://issues.apache.org/jira/browse/WW-3119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12879554#action_12879554 ]
weiliang...@yahoo.com commented on WW-3119: ------------------------------------------- sorry. is this qunhuan mei from nan jing, china? -- This message was sent on behalf of weiliang...@yahoo.com at openSubscriber.com http://www.opensubscriber.com/message/issues@struts.apache.org/12100800.html > Stringlength validation problem for utf-8 chars (Struts 2.1.6) > -------------------------------------------------------------- > > Key: WW-3119 > URL: https://issues.apache.org/jira/browse/WW-3119 > Project: Struts 2 > Issue Type: Bug > Components: Core Interceptors > Affects Versions: 2.1.6 > Environment: Win XP, Eclipes, Tomcat > Reporter: Qunhuan Mei > Assignee: Wes Wannemacher > Priority: Critical > Fix For: 2.1.8 > > > When I try to validate utf-8 chars such as Chinese using Struts 2.1.6, the > stringlength validation appears to have problem. It seems the validation > process is not using the number of Chinese chars before encoding, but rather > the number of chars after encoding. The following are the steps to reproduce > the problem: > 1. Create a project by importing struts2-blank-2.1.6.war from > ...\struts-2.1.6\apps" > and make the login.jsp work with Login.java, e.g. print out the > username.length() in setUsername(...) function. > 2. copy the following stringlength validation code into > Login-validation.xml: > <field-validator type="stringlength"> > <param name="maxLength">4</param> > <param name="trim">true</param> > <message key="fieldNameShouldBeWithinMaxLength"/> > </field-validator> > 3. copy the following stringlength error message into package.properties: > fieldNameShouldBeWithinMaxLength=The max number of chars of > ${getText(fieldName)} is ${getText(maxLength)} > 4. run the login.jsp and type in either "abcd" and "abcde" into username, > we can see that "abcd" does not incur a validation message whereas "abcde" > does. > 5. now typing 2 Chinese chars, say "世界"into the user name, which should > not have any problem since only 2 chars. However the struts reports the chars > received are more than 4. As a matter of fact, the print out statement in > setUsername(...) reports the number of chars is 6. > Qunhuan Mei > BTW: is there any way to access the validation code from struts 2.1.7 (this > bug may have been fixed by the 2.1.7 code)? Thanks. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.