【问题标题】:Spring JSP variable not assigned未分配 Spring JSP 变量
【发布时间】:2014-03-16 12:22:29
【问题描述】:

我的 JSP 页面中有这样的代码:

<spring:url value="" var="url"/>
<a href="<c:url value="/change_locale?locale=EN&current=${url}" />">EN</a>  

问题是链接中的参数 url 始终设置为空字符串。我希望如果我键入 localhost:8080/test 之类的 url,则 url 变量将保存该值,并且它将在链接中被替换,因此看起来比如 /change_locale?locale=EN&current=test。但是它总是像 /change_locale?locale=EN&current= 这样生成的。我做错了什么?最好的问候

【问题讨论】:

  • 我很困惑。你觉得哪里不对?

标签: spring jsp jsp-tags


【解决方案1】:

<spring:url value="" var="url"/>

您的value 值是空的String。因此,URL 是相对的。

Spring 使用UrlTag&lt;url&gt; 标签构造值。如果你好奇的话,你会想看看它的源代码中的createUrl 方法。

在这种情况下,它将生成一个空值String,并将其存储在名为url 的页面范围属性中。这就是渲染时得到的结果

${url}

【讨论】:

  • 如果我在 spring:url 中将值设置为空,则会生成指向当前页面的链接。例如我输入localhost:8080/test spring:url 正在生成localhost:8080/test
  • @John 你可以使用上面的内容运行并从呈现的页面发布 HTML 源代码吗?
  • 对不起,你是对的。它之所以有效,是因为它将值设置为空字符串,这就是当前 url 有效的原因。感谢您澄清这一点。我需要一些不同的东西来获取当前的 url。
  • @John 查看HttpServletRequest 方法。 url 标签用于构建 url。
猜你喜欢
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 2013-05-11
  • 2015-04-23
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
相关资源
最近更新 更多