2012-05-02 5 views
1

openlaszlo에서 LzBrowser.loadURL()을 사용하여 쿼리 문자열에 두 값을 전달하는 방법은 무엇입니까? openlaszlo의 LzBrowser.loadURL에서 쿼리 문자열에 두 값을 제공하는 방법

내 샘플 코드 :

java.lang.NumberFormatException의 :

LzBrowser.loadURL("../modules/Index.jsp?base="+ canvas.base +" id=" + canvas.Id,"fraMain"); 

나는 숫자 형식의 예외를 얻고 입력 문자열의 경우 : "1 개 기본 = 1"]

에서 도와주세요 이것을 해결합니다.

감사합니다,

주권

답변

1

& amp; & 대신. 그것은 나를 위해 일했습니다.

1

당신은 & 둘 사이 쿼리 매개 변수를 추가해야합니다. 이런 식으로 작성해야합니다

LzBrowser.loadURL("../modules/Index.jsp?base="+ canvas.base +"&id=" + canvas.Id,"fraMain"); 
+0

위의 문을 사용하면 컴파일 시간 오류가 발생합니다. – user27

1

숫자 형식 예외는 코드의 어느 시점에서 문자열을 숫자로 구문 분석하려고 시도한다는 것을 의미합니다. 어떤 OpenLaszlo 버전을 사용 했습니까?

LzBrowser (OpenLaszlo 4.1로 시작하는 대신 lz.Browser를 사용해야 함)를 기반으로하여 OpenLaszlo의 3.x 또는 4.0 릴리스를 사용하고있는 것으로 보입니다.

JavaScript 코드가 포함 된 메서드에서 앰퍼샌드 "&"을 사용하려면 XML 엔터티 규칙이 적용됩니다 (&으로 시작하는 모든 항목은 XML 항목으로 처리됩니다). 메소드에 섹션을 추가하면 일반적인 JavaScript 또는 ActionScript 코드에서와 같이 &을 사용할 수 있습니다 (예 : CDATA 섹션없이

<canvas debug="true"> 

    <button text="Open URL" onclick="canvas.loadUrl()" /> 

    <attribute name="base" type="number" value="99" /> 

    <attribute name="iD" type="number" value="10" /> 

    <method name="loadUrl"><![CDATA[ 
    lz.Browser.loadURL("http://www.google.com?base=" + canvas.base + "&iD=" + canvas.iD, "_blank"); 
    ]]></method> 

</canvas> 

는 다음과 같은 컴파일러 에러가 발생한다 :

loadurl.lzx : 10 : 71 다음으로 끝나야 엔티티 "ID"에 대한 참조 ';' 구분 기호. 잘못 놓거나 이스케이프 처리되지 않은 앰퍼샌드 ('&') 문자 을 소스 코드에서 찾으십시오.

대신 "&"없이 CDATA 섹션의 "&"를 사용하는 기술 해결은 물론 유효한 옵션입니다 - 내 눈에 자바 스크립트 코드의 가독성을 감소하지만.

0

는 사실이 작업을 수행하는 두 가지 방법이 있습니다, 다음의 모두 올바른지 :

1) <와 내부 코드를 포위에 의해()이 경우 &에 특수 HTML 문자를 탈출![CDATA [및]> 태그 :

<method name="loadUrl"> 
<![CDATA[ 
    lz.Browser.loadURL("http://www.google.com?base=" + canvas.base + "&iD=" + canvas.iD, "_blank"); 
]]> 
</method> 

2) HTML 엔티티 인코딩, 문자 & & A;

<method name="loadUrl"> 
    lz.Browser.loadURL("http://www.google.com?base=" + canvas.base + "&amp;iD=" + canvas.iD, "_blank"); 
</method> 

어떤 방법을 선택 하시겠습니까?