[ 
http://issues.apache.org/jira/browse/MYFACES-942?page=comments#action_12360384 
] 

yamo commented on MYFACES-942:
------------------------------

Detail:

In UIInput#validate(), it gets two kinds of values (submittedValue and 
convertedValue) for each item.

If the item is String and input value is blank, submittedValue and 
convertedValue are blank.
But, if the item is Number (Integer, BigDecimal...) and input value is blank, 
submittedValue is blank and convertedValue is null.

In "Render" phase, RendererUtils#getStringValue() is called by 
HtmlTextRendererBase#renderInput().
And, this method deal null-value item as a non-input item.


> Numeric item (that is blank) is force restored initial value after validation 
> error of the other item.
> ------------------------------------------------------------------------------------------------------
>
>          Key: MYFACES-942
>          URL: http://issues.apache.org/jira/browse/MYFACES-942
>      Project: MyFaces
>         Type: Bug
>   Components: General
>     Versions: 1.1.1
>     Reporter: yamo
>     Priority: Minor

>
> Numeric item (that is blank) is force restored initial value after validation 
> error of the other item.
> Testcase:
> ----------
> package foo;
> public class NumTest {
>   private String data = null;
>   private Integer num = new Integer(100);
>   private String str = "dummy";
>   public String getData() { return data; }
>   public void setData(String data) { this.data = data; }
>   public Integer getNum() { return num; }
>   public void setNum(Integer num) { this.num = num; }
>   public String getStr() { return str; }
>   public void setStr(String str) { this.str = str; }
> }
> ----------
> <%@ page contentType="text/html; charset=UTF-8" %>
> <%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h"%> 
> <%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f"%> 
> <%@ taglib uri="http://myfaces.apache.org/tomahawk"; prefix="t"%>
> <html><head><title>NumTest</title></head><body><f:view>
> <h:form>
>   <h:inputText id="data" value="#{numTest.data}" required="true" />
>   <h:inputText id="num" value="#{numTest.num}" />
>   <h:inputText id="str" value="#{numTest.str}" />
>   <t:messages showDetail="true" showSummary="true" />
>   <h:commandButton action="dummy" value="Submit" />
> </h:form>
> </f:view></body></html>
> ----------
> First, display three text boxes.
>  - blank - "100" - "dummy" -
> Clear all items, and click submit button.
> So, you can see validation error message for first item.
> And, you can see second item is "100" and third item is blank.
> I think that second item should be a blank.
> Maybe, it is a cause that IntegerConverter#getAsObject() return null, when 
> value.trim().length() == 0 in "Process Validations" phase.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to