On Tue, Mar 6, 2012 at 11:03 AM, Ruchira Wageesha <[email protected]> wrote:

> OK.. Lets assume that we provided getParameterAsFloat(),
> getParameterAsInt() methods,


I think this is overkill. I am happy to type cast and be done with this as
I have done in the code I sent, as a user.

I was trying to understand why it is a string that getPram returns. If it
is a string, so be it, and the document too says it returns string string.
So it is fine.


> then in order to use them, we must know the types of the parameters during
> the development time and it is not doing any automatic type detection or
> casting. What it does is, it tries to cast the param to the requested type
> within the function. In JavaScript, the way to go with either
> parseFloat(),parseInt() or Number() function.
>
>    - parseFloat(param) - Converts param to a floating number
>    - parseInt(param) - Converts param to an integer. If you are using
>    parseInt, please always try to give radix as the second parameter. Else it
>    would make you confuse as parseInt("07") = 7, parseInt("08") = 0 and
>    parseInt("08", "10") = 8. The reason for this confusion is, parseInt
>    considers all string begin with 0 as numbers of base 8. Then as 8 is not a
>    valid number of base 8, it gives 0 as the result.
>    - Number(param) - This converts any string into JavaScript number
>    either int or float.
>    - Boolean(param) - This might not give what most of the expect too.
>    i.e. Boolean("true") = true, Boolean("false") = true, Boolean("null") =
>    true. Further, Boolean() function returns false only when the param equals
>    "", null, undefined or NaN. If you want to cast string "true" or "false" to
>    boolean, then there is not a build-in method except checking (param ==
>    "true") or (param == "false")
>
> FYI.
>
> On Tue, Mar 6, 2012 at 10:16 AM, Nuwan Bandara <[email protected]> wrote:
>
>> Hi All,
>>
>> I dont think, we should think about the Java API when you are programming
>> in Javascript. In JavaScript you have 4 premitive types (literals)
>>
>>    1. null
>>    2. boolean
>>    3. numaric
>>    4. string
>>
>> And you have Objects as well for these with more operations associated
>> see [1] so if you want to do numerical operations you have to cast your
>> string to a Number and work on it. and thats it, an example is found at
>> [2]. We cannot go on, providing operations such as *getParameterAsDouble*
>> whenever we need some value to be casted, that's not Jaggery is for and
>> thats not how you work with javascript.
>>
>> [1]
>> http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
>> [2]
>> https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String#Distinction_between_string_primitives_and_String_objects
>>
>> Regards,
>> /Nuwan
>>
>> On Tue, Mar 6, 2012 at 10:07 AM, Tharindu Mathew <[email protected]>wrote:
>>
>>> Request parameters are string. Its beyond the scope of jaggery to fix
>>> this imo
>>>
>>> Regards,
>>>
>>> Tharindu
>>> Sent from Transformer
>>> On Mar 6, 2012 10:00 AM, "Hiranya Jayathilaka" <[email protected]> wrote:
>>>
>>>>
>>>>
>>>> On Tue, Mar 6, 2012 at 9:50 AM, Afkham Azeez <[email protected]> wrote:
>>>>
>>>>> I was also thinking the same. But since this is JavaScript, doesn't
>>>>> the type conversion automatically happen? Perhaps not. How will it know
>>>>> whether "1" is a String or int.
>>>>
>>>>
>>>> That's correct. And I think it's ok too. This is consistent with
>>>> JSP/Servlet API. If we are to solve this problem I think we should
>>>> introduce more methods to the API such as getParameterAsInt and
>>>> getParameterAsDouble.
>>>>
>>>> Thanks,
>>>> Hiranya
>>>>
>>>>
>>>>>
>>>>>
>>>>> On Tue, Mar 6, 2012 at 9:33 AM, Nuwan Bandara <[email protected]> wrote:
>>>>>
>>>>>> Hi Samisa,
>>>>>>
>>>>>> When you take the parameters from the request they are not type
>>>>>> bound. they will be always String, and if you are sure that some 
>>>>>> parameter
>>>>>> is an Integer you can cast it to a Integer and do math operations on it.
>>>>>>
>>>>>> It goes same for Java HTTPServletRequest [1]
>>>>>>
>>>>>> [1]
>>>>>> http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)
>>>>>>
>>>>>> Regards,
>>>>>> /Nuwan
>>>>>>
>>>>>> On Tue, Mar 6, 2012 at 8:07 AM, Ruchira Wageesha <[email protected]>wrote:
>>>>>>
>>>>>>> I don't think it is possible to differentiate request parameters as
>>>>>>> strings, integers, floats etc. i.e. when we pass something as a request
>>>>>>> param from the client side, we don't consider their types.
>>>>>>>
>>>>>>> If I have understand your question properly, what is would be
>>>>>>> the rationale behind identifying params in [1] as numbers and [2] as
>>>>>>> strings?
>>>>>>>
>>>>>>> Thanks & Regards,
>>>>>>> Ruchira
>>>>>>>
>>>>>>> [1] http://foo.com/calc?param1=1&param2=2
>>>>>>> [2] http://foo.com/search?param1=hello&param2=world
>>>>>>>
>>>>>>> On Mon, Mar 5, 2012 at 8:29 PM, Samisa Abeysinghe 
>>>>>>> <[email protected]>wrote:
>>>>>>>
>>>>>>>> Reason I am saying is that I wrote a cal to demo session and
>>>>>>>> the param could not be added out of the box. I have to make use of '
>>>>>>>> *parseFloat'*
>>>>>>>>
>>>>>>>> See code below.
>>>>>>>>
>>>>>>>> <%
>>>>>>>>     var operation = request.getParameter("operation");
>>>>>>>>     var value1 = parseFloat( request.getParameter("value1") );
>>>>>>>>     var value2 = parseFloat( request.getParameter("value2") );
>>>>>>>>
>>>>>>>>     var result = 0;
>>>>>>>>     var memory = 0;
>>>>>>>>
>>>>>>>>     if (operation == "add" ) {
>>>>>>>>         result = value1 + value2;
>>>>>>>>     } else if (operation == "sub" ) {
>>>>>>>>         result = value1 - value2;
>>>>>>>>     } else if (operation == "mul" ) {
>>>>>>>>         result = value1 * value2;
>>>>>>>>     } else if (operation == "div" ) {
>>>>>>>>         result = value1 / value2;
>>>>>>>>     } else if (operation == "mem" ) {
>>>>>>>>         memory = session.get("result");
>>>>>>>>          result = memory + value1;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     session.put("result", result);
>>>>>>>>
>>>>>>>>     if (operation == "mem" ) {
>>>>>>>>         print( memory + " + " + value1 + " = " + result );
>>>>>>>>     } else {
>>>>>>>>         print( value1 + " " + operation + " " + value2 + " = " +
>>>>>>>> result );
>>>>>>>>     }
>>>>>>>> %>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Mar 5, 2012 at 8:27 PM, Samisa Abeysinghe 
>>>>>>>> <[email protected]>wrote:
>>>>>>>>
>>>>>>>>> Cannot treat a number param as a number.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Samisa...
>>>>>>>>>
>>>>>>>>> Samisa Abeysinghe
>>>>>>>>> VP Engineering
>>>>>>>>> WSO2 Inc.
>>>>>>>>> http://wso2.com
>>>>>>>>> http://wso2.org
>>>>>>>>>
>>>>>>>>>  Thanks,
>>>>>>>> Samisa...
>>>>>>>>
>>>>>>>> Samisa Abeysinghe
>>>>>>>> VP Engineering
>>>>>>>> WSO2 Inc.
>>>>>>>> http://wso2.com
>>>>>>>> http://wso2.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Carbon-dev mailing list
>>>>>>>> [email protected]
>>>>>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Ruchira Wageesha
>>>>>>> Software Engineer - WSO2 Inc. www.wso2.com
>>>>>>>
>>>>>>> Email: [email protected] Blog: [email protected]
>>>>>>> Mobile: +94775493444
>>>>>>>
>>>>>>> Lean . Enterprise . Middleware
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Carbon-dev mailing list
>>>>>>> [email protected]
>>>>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Thanks & Regards,
>>>>>>
>>>>>> Nuwan Bandara
>>>>>> Senior Software Engineer
>>>>>> WSO2 Inc. | http://wso2.com
>>>>>> lean . enterprise . middleware
>>>>>>
>>>>>> http://nuwan.bandara.co
>>>>>> *
>>>>>> <http://www.nuwanbando.com/>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Carbon-dev mailing list
>>>>>> [email protected]
>>>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Afkham Azeez*
>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>> * <http://www.apache.org/>**
>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919
>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
>>>>> twitter: 
>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>>>>> *
>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
>>>>>
>>>>> *
>>>>> *
>>>>> *Lean . Enterprise . Middleware*
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Carbon-dev mailing list
>>>>> [email protected]
>>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Hiranya Jayathilaka
>>>> Associate Technical Lead;
>>>> WSO2 Inc.;  http://wso2.org
>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>
>>>> _______________________________________________
>>>> Carbon-dev mailing list
>>>> [email protected]
>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>
>>>>
>>> _______________________________________________
>>> Carbon-dev mailing list
>>> [email protected]
>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>
>>>
>>
>>
>> --
>> *Thanks & Regards,
>>
>> Nuwan Bandara
>> Senior Software Engineer
>> WSO2 Inc. | http://wso2.com
>> lean . enterprise . middleware
>>
>> http://nuwan.bandara.co
>> *
>> <http://www.nuwanbando.com/>
>>
>> _______________________________________________
>> Carbon-dev mailing list
>> [email protected]
>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>
>>
>
>
> --
> Ruchira Wageesha
> Software Engineer - WSO2 Inc. www.wso2.com
>
> Email: [email protected] Blog: [email protected]
> Mobile: +94775493444
>
> Lean . Enterprise . Middleware
>
> _______________________________________________
> Carbon-dev mailing list
> [email protected]
> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>
> Thanks,
Samisa...

Samisa Abeysinghe
VP Engineering
WSO2 Inc.
http://wso2.com
http://wso2.org
_______________________________________________
Carbon-dev mailing list
[email protected]
http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to