2009-08-13 78 views
2

我維護Cocoon 2.1應用程序,我面臨嚴重的請求參數問題。繭逃避查詢參數問題

考慮下面的網址:

http://myapp.com/somePage.html?param1=<expected_integer_value>&param2=<expected_integer_value> 

兩個參數1和參數被直接傳遞到變壓器作爲參數(<map:parameter />),然後直接使用屬性值模板中的JavaScript代碼用於:

`<select ... onchange="someFunction(this, '{$param1}','{$param2}');" >` 

問題是可以在參數中注入一些JavaScript代碼,並且它們在默認情況下不會被轉義(然而,所有關於cocoon和xslt的文章都表示,輸出默認逃脫)。

也許有人更有經驗的繭和xsl可能知道這個問題的一些東西?我怎樣才能擺脫繭中的輸出?我會感謝任何幫助和指導。

在此先感謝

西蒙

回答

3

我設法找到了解決這個問題的辦法。在站點地圖文件中,必須使用url-encode函數將每個必須直接從url傳遞到xslt文件的參數轉義。 例

<map:parameter name="param1" value="{url-encode:{request-param:theNameOfTheParam}}" />' 

問候 西蒙

0

因爲繭解碼嬰兒車我建議你做一個簡單的轉換,以避免與非轉義參數問題:

<select ... onchange="someFunction(this, '{translate($param1,"'", "")}','{translate($param1,"'", "")}');" > 

看到http://www.zvon.org/xxl/XSLTreference/Output/function_translate.html

+0

感謝您的答覆,但是這種解決方案是不夠的我。它不會涵蓋所有不允許的字符,並且必須應用於所有xsl文件。我正在尋找更通用的解決方案。 – 2009-08-17 06:58:22