c:出价值行为

时间:2012-07-03 15:10:38

标签: java jsp jstl

我对使用JSP相对较新,我觉得我忽略了一些简单的事情。我有一个段将一个键附加到URL上,然后再将用户发送回它们的来源。键是一个字符串值,当它只包含数字值(例如12345)时,它工作正常,但当它包含非数字(例如abcde)时,它只是将“#”附加到网址并保持在同一页面上

<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>

1 个答案:

答案 0 :(得分:0)

当它是一个字符串时,JavaScript将是非法的 - 它会认为你试图引用一个不存在的JavaScript变量。您将看到JavaScript控制台出错。

不要做任何JavaScript操作;在客户端看到JSP之前,在服务器端评估JSP:

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

更好的是,使用JSP EL:

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

此外,如果这是JSTL核心标记库,则规范前缀为"c"