有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javac:输出值行为

我对使用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>

共 (1) 个答案

  1. # 1 楼答案

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

    不要做任何JavaScript操作;在客户端看到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"