0

我有以下代码来设置 userId 变量:

(userId 在之前的代码中设置)

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

这会产生以下字符串: (Cust#${userId})

但是,以下代码按预期工作:

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

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

为什么 '${string}' 表达式之前的 '#' 字符会阻止对字符串进行评估?有没有我可以使用的解决方法,不需要插入空格?

4

2 回答 2

3

由于 JSF 会使用:

#{userId}

要返回用户 ID,我冒昧地猜测这是由 # 符号引起的错误或预期行为,使解析器不满意。只需使用以下任一:

<c:set var="userId" value="(Cust&#35;${userId})" />
<c:set var="userId" >(Cust&#35;${userId})</c:set>
于 2009-06-25T15:13:34.523 回答
2

我测试了上面的,它不起作用。它的输出是:

Cust#0002 或其他。

不过,您可以使用转义来使其正常工作。例如:

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

输出是:

客户#0002

于 2010-03-08T21:06:27.760 回答