JSR-252 Issue #13: needs converter-for-class converter registration for 
BigDecimal and BigInteger 
--------------------------------------------------------------------------------------------------

                 Key: MYFACES-1739
                 URL: https://issues.apache.org/jira/browse/MYFACES-1739
             Project: MyFaces Core
          Issue Type: Bug
          Components: JSR-252
         Environment: Tomcat 6.0.14, Myfaces 1.2.1-SNAPSHOT
            Reporter: Leonardo Uribe
             Fix For: 1.2.1-SNAPSHOT
         Attachments: patchBigIntegerBigDecimal.patch


When you have this code:

<%@ page session="false" 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"%>

<html>
<f:view>
        <[EMAIL PROTECTED] file="inc/head.inc"%>
        <body>
        <f:loadBundle
                basename="org.apache.myfaces.examples.resource.example_messages"
                var="example_messages" />
        <h1>Myfaces Examples JSF 1.2 Additions</h1>
        <h:messages></h:messages>
        <h:form id="form">
                <h:panelGrid id="grid" columns="3">
                        <h:outputLabel value="BigInt" 
for="bigint"></h:outputLabel>
                        <h:inputText id="bigint" 
value="#{convertBigBean.bigint}">
                                <f:converter 
converterId="javax.faces.BigInteger" />
                        </h:inputText>
                        <h:message for="bigint"></h:message>
                        <h:outputLabel value="BigDecimal" 
for="bigdecimal"></h:outputLabel>
                        <h:inputText id="bigdecimal" 
value="#{convertBigBean.bigdecimal}">
                                <f:converter 
converterId="javax.faces.BigDecimal" />
                        </h:inputText>
                        <h:message for="bigdecimal"></h:message>
                </h:panelGrid>
                <h:commandButton id="button1" value="press me" action="update" 
/>
        </h:form>
        </body>
</f:view>
</html>

And the backing bean looks like follows:

package org.apache.myfaces.convertbig;

import java.math.BigDecimal;
import java.math.BigInteger;

public class ConvertBigBean {

        private BigInteger bigint;
        
        private BigDecimal bigdecimal;

        public BigInteger getBigint() {
                return bigint;
        }

        public void setBigint(BigInteger bigint) {
                this.bigint = bigint;
        }

        public BigDecimal getBigdecimal() {
                return bigdecimal;
        }

        public void setBigdecimal(BigDecimal bigdecimal) {
                this.bigdecimal = bigdecimal;
        }
        
}

The code works but if you remove the lines:

<f:converter converterId="javax.faces.BigInteger" />

and

<f:converter converterId="javax.faces.BigDecimal" />

works in JSF RI 1.2 but not on Myfaces 1.2 as the spec says.  

This issue is related with MYFACES-1260  JSR-252 Issue #13: Specified "by type" 
converter registration for BigDecimal and BigInteger, but this is closed
so I open a new issue. The solution is simple, just add the following:

  <converter>
    <converter-for-class>java.math.BigDecimal</converter-for-class>
    <converter-class>javax.faces.convert.BigDecimalConverter</converter-class>
  </converter>

and 

  <converter>
    <converter-for-class>java.math.BigInteger</converter-for-class>
    <converter-class>javax.faces.convert.BigIntegerConverter</converter-class>
  </converter>  

to the files BigInteger.xml and BigDecimal.xml of myfaces-build project on 1.2 
branch



-- 
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