繁体   English   中英

如何在jsp的java部分中使用javascript变量

[英]How to use a javascript variable in the java part of a jsp

我目前在javascript中:

var target = getTarget();

我想检查目标不是以“ select”开头,所以我在考虑使用java方法startsWith来做到这一点,因为我在javascript中找不到等效项

所以我做了:

<%if(!target.startsWith(select)%>
    {
        targetValue = getTargetValue();
    }

我最终得到一个错误说明:

目标无法解决

根据我的理解,如果我使用<%%>,该如何解决呢?我可以使用Java代码

Java在服务器端运行,而JavaScript在客户端运行。 生成HTML时将执行Java代码,而将生成的HTML下载到客户端浏览器并且浏览器将HTML呈现给最终用户时将执行JavaScript。 简而言之: Java代码无法访问JavaScript代码,反之亦然1

您的特定问题:Java服务器代码(在scriptlet内部)没有声明target变量。 您应该使用普通的JavaScript来实现您想要/需要的东西。 这是一段代码,摘自如何检查字符串“ StartsWith”是否为另一个字符串? (使用投票数第二的答案,因为它比接受的答案短):

var target = '';
if (getTargetValue().lastIndexOf('select', 0) === 0) {
    target = getTargetValue();
}

另外,您应该避免直接在JSP中编写Java代码


1 :您可以 HTML 编写 Java变量的内容,以将数据分配给JavaScript变量,但这只能在生成HTML时完成。 如果执行ajax操作, 则不会重新执行任何Java代码,因此不会重新评估任何scriptlet( <% %> )。

target是一个JavaScript变量,因此当您尝试使用它来调用Java方法时,.jsp页将把target作为Java变量而不是JavaScript来查找。 解决方法可能只是:

if(target.substring(0, select.length) !== select){}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM