1.我们要调用java里的某个函数可以显示出当前路径的所有图片
@RequestMapping(value ="/requestAllPic")
public ModelAndView requestAllPic()throws Exception
{
File file = new File("C:\\Users\\Skady_cat\\Desktop\\Iamge库");
File [] files = file.listFiles();
String para = "";
for (int i = 0; i < files.length; i++)
{
File file1 = files[i];
para+= file1.getName(); //根据后缀判断
}
return new ModelAndView("requestAllPic","path",para);
}
这样我就能够得到它的全部路径,接下来就比较麻烦了...
我在前端需要迭代,通过将参数名送给controller,然后动态的
生成数个图片的请求链,嘛,思路没错吧??待我查阅下js是怎么实现的哈=。=
先简化需求,使用js显示100句话。
(这个是jsp里面嵌入js代码的标签哈)
<script type="text/javascript">
for (var i=0;i<10;i++)
{
document.write(i + "<br>");
}
</script>
这样没有问题,但是却无法用这个来实例标签。
怎么实例标签呢?
我们可以这样
<% for(int i=0;i<3;i++) { %>
<img src="xxx">
<% } %>
是的,就是这样写的。
所以现在我们得面对新的问题了,我们需要从controller那边传
一个数组过来。
嘛,我讨厌json,因为到现在我都还没有研究透。
不过,我们这里不打算使用json来做数据交换。
我们可以直接把数据传到modelandView里面
怎么做呢?我们可以这样
@RequestMapping(value ="/requestAllPic")
public ModelAndView requestAllPic()throws Exception
{
ModelAndView mav=new ModelAndView("requestAllPic");
File file = new File("C:\\Users\\Skady_cat\\Desktop\\Iamge库");
File [] files = file.listFiles();
String para = "";
mav.addObject("len", files.length);
for (int i = 0; i < files.length; i++)
{
File file1 = files[i];
file1.getName(); //根据后缀判断
mav.addObject(i+"",file1.getName());
}
return mav;
}
将所有数据装载到mav(没有做序列化,因为=。=,懒,目前还没研究透
序列化的机理,等我要用的时候再说吧,最主要的是这种方法十分适合新手)。
这边就能将数据发送给前端,那么前端该怎么获取数据呢?这样:
for(int i=0;i<3;i++) {
%>
<img src=returnPic?key=<%=request.getAttribute(i+"") %>>
<% }
%>
这里的话,是一步到位,高手的话(估计也不会看我的博客了),菜鸡
的话最好往下继续看。
首先
request.getAttribute(i+"")这句话就是获取从controller里面
获取的数据
<%= xx%>
这种写法是给jsp页面标签填写java数据的固定写法。
最后是这个src=returnPic?key=
这个解释就比较麻烦了,首先,我们菜鸡再怎么菜也要有个概念
src可以直接从公网ip上获取资源。
而src就是指这张图片的url。
我们发了一个returnPic的参数给服务器,然后带了一个key参数
根据key参数返回一张图片(显然这里的key就是指图片名字)。
嘛=。=
我贴一下返回图片的代码
@RequestMapping(value ="/requestAllPic")
public ModelAndView requestAllPic()throws Exception
{
ModelAndView mav=new ModelAndView("requestAllPic");
File file = new File("C:\\Users\\Skady_cat\\Desktop\\Iamge库");
File [] files = file.listFiles();
String para = "";
mav.addObject("len", files.length);
for (int i = 0; i < files.length; i++)
{
File file1 = files[i];
file1.getName(); //根据后缀判断
mav.addObject(i+"",file1.getName());
}
return mav;
}
这样,你就实现了整个文件夹图片的浏览。
如果你有什么问题欢迎发送邮件给我
我的邮箱:[email protected]