簡體   English   中英

如何在RequestContext中的Callbackparameters中轉義特殊字符?

[英]How to escape special characters from Callbackparameters in RequestContext?

我想轉義附加在RequestContext回調參數中的特殊字符。

http://forum.primefaces.org/viewtopic.php?f=3&t=40444中明確提到了該問題

例如:單擊下面的按鈕,將調用doSomething。

<p:commandButton value="Save Event" style="float:right;margin-right:100px;" 
    actionListener="#{myBean.doSOmething}"                      
    oncomplete="if (args.facesMessagesAvailable){handleEditEventRequest(args);}
</p:commandButton>

在服務器方法中,參數通過請求上下文傳遞給客戶端。

public void doSOmething() {
    String schEventsJson = "Hello & How are you?";
    RequestContext.getCurrentInstance().addCallbackParam("eventList", schEventsJson);
}

瀏覽器控制台顯示Uncaught TypeError:無法讀取未定義的屬性'facesMessagesAvailable'

我認為這是由於在回調參數中使用&符而發生的。 結果,回調參數在客戶端不可用。

我嘗試將args封裝在encodeURIComponent中,這沒有用。

使用Hatem Aliman建議的解決方案以及JSON中提供的解決方案,替換引號和斜杠,但是用什么呢? 但是問題仍然存在。

想知道如何解決相同的問題。 任何幫助表示贊賞。

使用jsf 2.1和primefaces 4.0。

您可以使用escapeEcmaScript()使用EcmaScript字符串規則對字符串中的字符進行轉義。

EcmaScript以JavaScript和ActionScript方言而聞名。

例:

String schEventsJson = StringEscapeUtils.escapeEcmaScript("Hello & How are you?");

您可以在apache的公共語言中找到它

org.apache.commons.lang3.StringEscapeUtils

Maven的:

<!-- apache commons -->
<dependency>
   <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.3.2</version>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM