【问题标题】:How to escape spaces in URLs before page rendered in javajava - 如何在java中呈现页面之前转义URL中的空格
【发布时间】:2013-11-24 18:58:58
【问题描述】:

我在项目中有链接,带有空格渲染: href="/plugins/configure/Poulpe Auth Plugin" - 这是来自页面源代码的示例。

当然,浏览器在发送到服务器之前会将空格编码为 %20,但我在 W3C 验证器中有错误:

 Bad value /plugins/configure/Poulpe Auth Plugin for attribute href on element a: Whitespace in path component. Use %20 in place of spaces.

正如我在其他资源中看到的,在类似情况下,空格被替换为“-”、“+”或“_”。 我不确定在保存到数据库之前是否可以重写数据中的空格,所以我应该在设置参数请求之前处理它们吗?有人可以解释一下我应该在哪里处理查询参数空间,然后再将它们显示在 url 中?

【问题讨论】:

  • 使用 org.springframework.web.util.HtmlUtils 进行 HTML 转义。
  • 我试过了,但这种方法并没有解决我的问题
  • 你为什么在你的项目 url 中使用空格?
  • 您想在哪一侧处理空格?您是从数据库中获取 url 还是从 UI 获取以将它们存储在数据库中?
  • 实际上我们在创建 url 时部分使用了对象名称 - ${plugin.name}:href="${pageContext.request.contextPath}/plugins/configure/${plugin.name}" 对象名称可以包含空格。我不确定我们是否应该保存没有空格的名称,我不知道在 url 中使用它们之前在哪里以及如何重写它们。

标签: jsp url w3c spaces


【解决方案1】:

我已经找到了决定:

<a href="<spring:url value="${pageContext.request.contextPath}/plugins/configure/{pluginName}">
                                <spring:param name="pluginName" value="${plugin.name}" />
                            </spring:url>"
                                 title="<spring:message code='label.plugins.plugin.configure.hint'/>">
                                <spring:message code="label.plugins.plugin.configure"/>
                            </a>

我有:

<a href="/plugins/configure/Poulpe%20Auth%20Plugin" data-original-title="Press to configure this plugin">Configure</a>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-09
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多