0

私はJSPの操作に比較的慣れておらず、単純なものを見落としているような気がします。ユーザーを元の場所に戻す前に、URLにキーを追加するセグメントがあります。キーは文字列値であり、数値のみで構成されている場合(たとえば、12345)は正常に機能しますが、非数値(たとえば、abcde)が含まれている場合は、URLに「#」を追加するだけで同じページに留まります。 。

<core:when test="${dataTransferObject.someBoolean}">
<a href="#" onclick="javascript:location='path/back/to/their/home.request?cachekey='+<core:out value="${dataTransferObject.stringVariable}"/>;return false;">Back to Home </a>
</core:when>
4

1 に答える 1

0

文字列の場合、JavaScriptは違法になります。存在しないJavaScript変数を参照しようとしていると見なされます。JavaScriptコンソールでエラーが表示されます。

JavaScript操作は行わないでください。JSPは、クライアントが認識する前にサーバー側で評価されます。

onclick="javascript:location='path/back/to/their/home.request?cachekey=<core:out value="${dataTransferObject.stringVariable}"/>';return false;"

さらに良いことに、JSPELを使用します。

onclick="javascript:location='path/back/to/their/home.request?cachekey=${dataTransferObject.stringVariable}';return false;"

また、これがJSTLコアタグライブラリの場合、正規のプレフィックスは"c"です。

于 2012-07-03T15:14:13.407 に答える