首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP解析url和匹配关键字

问JSP解析url和匹配关键字
EN

Stack Overflow用户
提问于 2012-03-05 21:19:31
回答 2查看 512关注 0票数 0

这是我的问题,我正在使用jsp脚本,试图在请求url中匹配一个关键字,然后做一些事情:

代码语言:javascript
复制
    <script>
     $url = '${pageContext.request.requestURL}';

    if("${fn:contains(url, 'key')}" == true){
        ...
    }
....

但这项工作...我不确定问题出在哪里,但我希望当url包含这个字符串时,转到if条件。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-05 21:36:31

您混合了JSP/EL和JavaScript,就好像它们同步运行一样。这是错误的。JSP/EL在get服务器上运行,并生成HTML代码,这些代码在get浏览器中执行。JavaScript (JS)是生成的HTML代码的一部分,仅在and浏览器中运行。

您需要完全使用JSP/EL,或者完全使用JavaScript。您可以使用JSP/EL动态生成JS代码,这些代码稍后在页面到达浏览器时执行。在浏览器中右键单击页面,查看源代码以查看JSP/EL生成的内容。您应该看不到任何JSP/EL行。您应该只看到HTML/JS代码。它就是随后执行JS代码。

您正在使用JSP EL函数测试JS变量,该变量当时根本不在变量作用域中。这是行不通的。它只能测试JSP/EL变量。

下面是你如何在纯JS中做到这一点:

代码语言:javascript
复制
<script>
    var url = window.location.href;

    if (url.indexOf('key') > -1) {
       // ...
    }
</script>

如果您真的坚持使用JSP/EL来完成此任务,则可以执行以下操作:

代码语言:javascript
复制
<script>
    var url = '${pageContext.request.requestURI}';

    if (${fn:contains(pageContext.request.requestURI, 'key')}) {
       // ...
    }
</script>

这将生成以下JS代码(在浏览器中右键单击页面并查看源代码):

代码语言:javascript
复制
<script>
    var url = '/some/uri';

    if (true) {
       // ...
    }
</script>

但这没有任何意义。无论您需要解决什么功能需求,您都需要仔细考虑正确的方法。请随时询问有关以适当方式解决具体功能需求的新问题。

票数 2
EN

Stack Overflow用户

发布于 2012-03-05 21:29:41

如果需要用来请求页面的参数,请使用${param.paramName}。所以在这种情况下,${param.key}。请参阅the docs中的隐式对象。如果只是想检查它是否有值,可以试试${not empty param.key}。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9567320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档