gpt4 book ai didi

java - 不允许加载本地资源: Why?

转载 作者:行者123 更新时间:2023-11-30 06:22:15 25 4
gpt4 key购买 nike

当对 main.do 的请求到来时,它会读取文件夹路径中的文件。然后,我们将加载的文件放入 ModelAndView 对象中,并将其传递到 main.jsp 页面。

Controller.java

@RequestMapping("main.do")
public ModelAndView mainPage(HttpSession session)
{
ModelAndView mav = new ModelAndView();

mav.addObject("slideList", aService.readSlideFileList("slide"));
mav.setViewName("mainPage");

return mav;
}

Service.java

public List<HashMap<String, Object>> readSlideFileList(String way)
{
File dir = new File(path + way + "/");

if(!dir.isDirectory())
dir.mkdirs();

File[] fileList = dir.listFiles();

//List<String> list = new ArrayList<String>();
List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
for (File file : fileList)
{
HashMap<String,Object> map = new HashMap<String, Object>();
if (file.isFile())
{
map.put("filePath", file.getName());
System.out.println("map > " + map);
}
list.add(map);
}
return list;
}

当我第一次尝试这个时,我遇到了像标题这样的错误,所以我写了这样的内容:

if (file.isFile())
{
map.put("filePath", path + way + "/" + file.getName());
System.out.println("map > " + map);
}

因此,map的结果值为:

map > C:/rachel/slide/"file name"

我尝试手动显示此 map 。 (如下图:)

<c:forEach items="${slideList}" var="slideName">
<div class="swiper-slide">
<img src="${slideName.filePath}"/>
</div>
</c:forEach>

以上结果是在 Google 开发者工具中表示的。

<img src="C:/rachel/"file path">

但是,这会导致诸如标题之类的错误。

所以我尝试了以下方法。

Server.xml

<Context docBase="rachelivf" path="/rachelivf" reloadable="true" source="org.eclipse.jst.jee.server:rachelivf"/>
<!-- <Context docBase="C:/rachel" path="/boardFile" reloadable="ture"/> -->
<Context docBase="C:/rachel" path="/slide" reloadable="true"/>

dispatcher-servlet.xml

<mvc:resources location="/slide/**" mapping="c:/rachel/**"></mvc:resources>

ma​​in.jsp

<c:forEach items="${slideList}" var="slideName">
<div class="swiper-slide">
<img src="/slide/${slideName.filePath}"/>
</div>
</c:forEach>

(再次修改服务逻辑)

    if (file.isFile())
{
map.put("filePath", file.getName());
System.out.println("map > " + map);
}

结果,错误发生了变化。

Failed to load resource: the server responded with a status of 404 ()

事实上,正如您从 Google 开发者工具中看到的那样,标签表示为:

<img src="/slide/2f03c6f8-f5c1-4e6b-bf1c-c70398c118d4.png">

如何显示图像?我不知道我做错了什么。

请告诉我们您的想法。

我需要帮助。

最佳答案

我解决了。

代码修改如下。

dispatcher-servlet.xml

<mvc:resources location="/slide/**" mapping="c:/rachel/**"></mvc:resources>

server.xml

<Context docBase="C:/rachel" path="/slideImg/" reloadable="true"/>

ma​​in.jsp

    <c:forEach items="${slideList}" var="slideName">
<div class="swiper-slide">
<img src="/slideImg/slide/${slideName.filePath}"/>
</div>
</c:forEach>

结果

enter image description here

干得非常好。

关于java - 不允许加载本地资源: Why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47879455/

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