2009-06-25 46 views
0

我有以下代碼來設置用戶ID的變量:「#」字符行爲異常

(用戶ID在現有代碼設置)

<c:set var="userId" value="(Cust#${userId})" /> 

哪產生以下串:(卡斯特#$ {} userId的)

下面的代碼工作,但預期:

<c:set var="userId" value="(Cust# ${userId})" /> 

顯示以下字符串(Cust#0001)。

爲什麼'$ {string}'表達式之前的'#'字符阻止對字符串進行評估?有沒有可以使用的工作,不需要插入空間?

回答

3

由於JSF將使用:

#{userId} 

要返回的用戶ID,我冒昧地猜測,這可以是一個錯誤或造成#符號使得解析器不高興預期的行爲。只要使用以下任何一種:

<c:set var="userId" value="(Cust&#35;${userId})" /> 
<c:set var="userId" >(Cust&#35;${userId})</c:set> 
+0

感謝您的信息+建議。 – AndreiM 2009-06-25 18:36:35

2

我測試了上述,它不起作用。它的輸出將是:

Cust # 0002或其他。

雖然您可以使用轉義來讓它正常工作。例如:

<c:set var="userId" value="(Cust\#${userId})" /> 

輸出是:

卡斯特#0002