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 に答える