[Laszlo-user] LzParam + dataset multiple values issue

Cary Clark caclark at cox.net
Mon Aug 4 16:18:20 PDT 2008


Known problem for quite some 
time...http://www.openlaszlo.org/jira/browse/LPP-354

Cary Clark wrote:
> I have OL 4.0.12 as reported in the debugger window:
> lzx> Debug.write(canvas.lpsversion)
> 4.0.12.0
>
> I had an issue come up with dynamically adding UI elements via 
> replication to a form with the same name and the values not all 
> getting sent to the server (Java in my case).  So I constructed a test 
> case.  Here's a small app that creates an LzParam instance, adds 
> several parameters to it via the addValue() method, and submits it to 
> my test server code.
>
> ===================================================
> <?xml version="1.0" standalone="no"?>
> <!DOCTYPE canvas SYSTEM "http://www.laszlosystems.com/lps/tools/lzx.dtd">
>
> <canvas>
>    <include href="base/submit.lzx" />
>
>    <dataset name="submitDS" src="/common/jsp/echoToStdOut.jsp"
>             request="false" type="http"
>             timeout="120000" />
>  
>    <vbox name="content" >
>        <hbox name="buttonsView" width="50" spacing="4">
>            <button name="submitButton" text="Submit Test" >
>                <handler name="onclick">
>                    var ds = canvas.submitDS ;
>                    var params = new LzParam() ;
>                    params.addValue( "supervisorId", "1" ) ;
>                    params.addValue( "supervisorId", "2" ) ;
>                    params.addValue( "supervisorId", "3" ) ;
>                    params.addValue( "supervisorId", "4" ) ;
>                    ds.setQueryString( params );
>                          Debug.write( "testSubmit.lzx::onclick:  
> queryString:" + params.toString() ) ;
>                    ds.doRequest();
>                </handler>
>            </button>
>        </hbox>              </vbox>
>   </canvas>
> ===================================================
> The test jsp is a small hack of the "echo" JSP that someone @ Laszlo 
> Systems did some years back.  Instead of returning the values as XML, 
> I write them to std out:
> <?xml version="1.0"?>
> <%@ page import="java.util.*" %>
> <%@ page contentType="text/xml; charset=UTF-8" %>
>
> <%
>    System.out.println( "echoToStdOut.jsp:  Submitted Parameters" ) ;
>
>      Enumeration params = request.getParameterNames();
>         while(params.hasMoreElements()) {
>         String n = (String)params.nextElement();
>         String[] v = request.getParameterValues(n);
>         for(int i = 0; i < v.length; i++) {
>             String str = v[i];
>             // parse query args (URLENCODING) to Unicode as UTF8
>             byte p[] = str.getBytes("8859_1");
>             String ustr = new String(p, 0, p.length, "UTF-8");
>
>             System.out.print("name='" + n + "' <");
>             System.out.print(ustr);
>             System.out.println(">");
>            }
>        }
> %>
> ===================================================
>
> running the OL app with debug=true, I see this in the debug window 
> when the button is clicked:
>
> testSubmit.lzx::onclick:  
> queryString:supervisorId=1&supervisorId=2&supervisorId=3&supervisorId=4
>
> According to the OLdoc for LzParm->addValue(), this is correct - "Adds 
> a value. Does not replace existing entries with the same name."
>
> The output from the JSP, unfortunately, tells a different story:
> echoToStdOut.jsp:  Submitted Parameters
> name='supervisorId' <1>
>
> This acted the same way under 4.0.11.  Have I misinterpreted how this 
> should work or is this a bug?
>
> Thanks,
> Cary
>


More information about the Laszlo-user mailing list