【问题标题】:Parsing string variable with jstl用jstl解析字符串变量
【发布时间】:2010-08-19 23:20:02
【问题描述】:

这是我的问题。

我需要设置一个进程,最好使用 jstl/jsp,根据客户端在 URL 参数中输入的内容,将返回某个 URL,并传递相同的参数,并通过 javascript 弹出功能打开.

我遇到的问题是,选择语句没有找到参数之一,除非它是开始参数之一。 (现在你的想法是,'嗯?')

客户端传递的参数列表,如下所示...

?name=personsname&email=personsemail&tmplatecde=7&legalid=20266998&photoURL=%2Favmedia%2Fweb%2Findex%2F25505893822%2EJPG&agentNumber=047666&FWSType=FR&des=,+CLU%AE,+ChFC%AE&postto=thenetwork.nmfn.com&agentnumber=047666&formname=FWSContactForm2&attr=FRSite

除了那个参数,我真的只需要'formname'。但是,如果我像这样输入查询字符串,这是客户端期望做的,它将找不到表单名。将 formname 参数移到 'name' 参数之前,它可以工作。

在我的公司,我们构建了一个自定义 JSP 标记,它可以简单地获取该查询字符串并将其附加到指定的 URL,但要确定该 URL,我还需要检查表单名称是否相等。

是否有人对解析字符串以获取该 formname 值的适当方法有任何想法?

到目前为止,我拥有的与此问题相关的代码是

<c:choose><c:when test='${param.formname == "FWSContactForm2"}' >

任何帮助将不胜感激。

【问题讨论】:

  • 尝试将 formname 参数向左移动并测试直到它起作用。也许其他参数之一中的字符搞砸了?
  • 当您到达 JSTL 和您的 JSP 页面时,查询字符串已经被 servlet 容器拆开。您应该通过弄清楚所有参数实际上是什么来进行调试,这可能会告诉您 URL 的哪一部分在语法上无效并导致 servlet 容器丢失尾随参数。

标签: javascript jsp jstl jsp-tags


【解决方案1】:

它应该可以正常工作。然而,该查询字符串包含一个使用 ISO-8859-1 进行 URL 编码的特殊字符,%AE(注册商标 ®)。也许 servletcontainer 正在使用错误的字符集对其进行解码,并且一个失败紧随其后。删除 %AE 部分并重新测试。如果可行,我将调查相关 servletcontainer 的 URL 编码配置。另一方面,如果您可以完全控制应该发送此查询字符串的页面,您还可以将响应字符集设置为与 servletcontainer 使用的字符集相同。那会破坏更少的东西。

【讨论】:

  • 谢谢!有了这些信息,我就能弄清楚如何通过使用我们的自定义查询字符串变量并扫描它以查找 formname 参数来解决问题。比弄乱已经运行良好的 servlet 容器更容易。
猜你喜欢
  • 1970-01-01
  • 2014-10-22
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 2012-09-30
相关资源
最近更新 更多