gpt4 book ai didi

java - Apache Tiles + 文件夹路径中的空格

转载 作者:行者123 更新时间:2023-11-28 22:30:41 24 4
gpt4 key购买 nike

我目前正在从事一个涉及 Apache Tiles 的项目,但遇到了以下问题。
项目文件夹的路径名中有(一个或多个)空格。

C:\Users\MyUsername\Documents\Dropbox\Subfolder\My Projects\GymApp

现在,令我惊讶的是,当我使用 Apache Tiles 时,它会尝试从以下位置加载 tile-definition.xml:

C:\Users\MyUsername\Documents\Dropbox\Subfolder\My%20Projects\GymApp\src\main\webapp\WEB-INF\configurations\tile-definition.xml

所以问题出在工具 X 尝试将所有空格转换为 %20(URL 编码)的部分,其中工具 X 是:Windows、Java、Tomcat、Spring 或 Apache Tiles。由于这个 Apache Tiles 无法加载文件,因为文件不存在(如果我尝试在 Windows 资源管理器中打开 URL,它会给出文件不存在的错误,同样的事情会出现在我的 IDE 的控制台日志中).

至于我的问题,是否可以在包含空格的文件夹中运行 Apache Tiles 项目?如果是这样,这是如何完成的?

注意*:如果我将 My Projects 的文件夹名称更改为 My_Projects 项目运行时没有任何错误,所以我知道文件夹路径在这里有问题。

-- 编辑--
我使用这段代码来配置 tilesConfigurer

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
</bean>

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions" value="/WEB-INF/configurations/tiles.xml" />
</bean>

-- 编辑 2 --
这是我的 IDE 日志显示的内容:

DEBUG BaseLocaleUrlDefinitionDAO:154 - File Resource file:/C:/Users/MyUsername/Documents/Dropbox/Subfolder/My%20Projects/GymApp/src/main/webapp/WEB-INF/configurations/tiles.xml at file:/C:/Users/MyUsername/Documents/Dropbox/Subfolder/My%20Projects/GymApp/src/main/webapp/WEB-INF/configurations/tiles.xml not found, continue
DEBUG BaseLocaleUrlDefinitionDAO:154 - File Resource file:/C:/Users/MyUsername/Documents/Dropbox/Subfolder/My%20Projects/GymApp/src/main/webapp/WEB-INF/configurations/tiles_en.xml at file:/C:/Users/MyUsername/Documents/Dropbox/Subfolder/My%20Projects/GymApp/src/main/webapp/WEB-INF/configurations/tiles_en.xml not found, continue
DEBUG TestDispatcherServlet:938 - Could not complete request
javax.servlet.ServletException: Could not resolve view with name 'home' in servlet with name ''

最佳答案

在指定 tilesConfigurer bean 时是否使用上下文相关路径?因为如果您这样做,您的项目文件夹是否包含空格应该无关紧要。

我的 dispatcher-servlet.xml 中有以下代码:

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles/config/template-definitions.xml</value>
<value>/WEB-INF/tiles/config/page-definitions.xml</value>
</list>
</property>
</bean>

...即使我的项目文件夹包含空格,Tiles 仍会找到 definition-xml。

关于java - Apache Tiles + 文件夹路径中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20095165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com