java - JSTL c :url to a file with spaces in its name

标签 java spring jsp jstl

我正在尝试使用 <c:url> 链接到图像来自 jsp,但文件名中包含空格。这意味着 url 会转换为 %20 。就在它的名字里,但没找到。是否有办法在不重命名每个文件以不包含空格的情况下实现此目的?

<ul id="abilityTabs" data-tabs="abilityTabs" class="nav nav-tabs">
    <li class="active"><a href="#passiveTab"><img id="passiveAbility" src="<c:url value="/resources/images/abilities/${god.name} - ${god.ability5}.png"/>" alt="Banner"></a></li>
    <li><a href="#ability1Tab"><img id="ability1" src="<c:url value="/resources/images/abilities/${god.name} - ${god.ability1}.png"/>" alt="Banner"></a></li>
    <li><a href="#ability2Tab"><img id="ability2" src="<c:url value="/resources/images/abilities/${god.name} - ${god.ability2}.png"/>" alt="Banner"></a></li>
    <li><a href="#ability3Tab"><img id="ability3" src="<c:url value="/resources/images/abilities/${god.name} - ${god.ability3}.png"/>" alt="Banner"></a></li>
    <li><a href="#ability4Tab"><img id="ability4" src="<c:url value="/resources/images/abilities/${god.name} - ${god.ability4}.png"/>" alt="Banner"></a></li>

编辑:我是个白痴,由于某种原因,文件是 jpg 而不是 png。

最佳答案

听起来问题出在文件扩展名而不是编码上。但无论如何...

结果是<c:url>根本不进行 URL 编码(查询字符串参数除外)。请参阅How to encode a String representing URL path with JSTL?

您可以使用Spring's URL tag对模板变量进行编码:

<spring:url value="/url/path/{variableName}">
   <spring:param name="variableName" value="more than JSTL c:url" />
</spring:url>

关于java - JSTL c :url to a file with spaces in its name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29287840/

相关文章:

java - 按数组列表自定义分页

java - 如何将java应用程序嵌入到jsp页面中

java - 无法在 Ubuntu 上使用 JDK 9 启动 Eclipse Neon - 退出代码 = 13

java - Google 图表 xAxis 必须包含日期时间

css - 在 Spring::Form 中使用额外的 cssErrorClass

java - VPS 上的 spring boot 应用程序没有响应

java - 如何在servlet java中获取客户端公共(public)IP地址

java - 使用默认模板的 spring mvc 出现 404 错误

java - 当在 Spring Boot 应用程序上禁用 open-in-view 时,Eclipse 或 Spring Boot 可以帮助我找到需要事务的方法吗?

java - bukkit java.lang.NoSuchMethodError