当出现对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"
我尝试手动显示此地图。 (如下所示:)
<c:forEach items="${slideList}" var="slideName">
<div class="swiper-slide">
<img src="${slideName.filePath}"/>
</div>
</c:forEach>
以上结果在Google Developer Tools中表示。
<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"/>
调度-servlet.xml中
<mvc:resources location="/slide/**" mapping="c:/rachel/**"></mvc:resources>
main.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">
如何显示图像?我不知道我做错了什么。
告诉我们你的想法。
我需要帮助。
答案 0 :(得分:1)
我解决了这个问题。
代码修改如下。
<强>调度-servlet.xml中强>
<mvc:resources location="/slide/**" mapping="c:/rachel/**"></mvc:resources>
<强> server.xml中强>
<Context docBase="C:/rachel" path="/slideImg/" reloadable="true"/>
<强> main.jsp中强>
<c:forEach items="${slideList}" var="slideName">
<div class="swiper-slide">
<img src="/slideImg/slide/${slideName.filePath}"/>
</div>
</c:forEach>
结果,
这是非常好的工作。
答案 1 :(得分:0)
<img src="/slide/2f03c6f8-f5c1-4e6b-bf1c-c70398c118d4.png">
请尝试使用网址添加上下文:
/context-path/slide/2f03c6f8-f5c1-4e6b-bf1c-c70398c118d4.png
答案 2 :(得分:0)
尝试以下方法..
在JSP文件的顶部以下
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
以及您想要的地方的以下内容。
<img src="<c:url value="/resources/img/${slideName.filePath}"></c:url>">
此处/ resources / img /是您保存文件的位置,或者您保存幻灯片的情况。 请注意,src采用相对路径。
答案 3 :(得分:0)