2009-06-25 48 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