发表于: 2017-08-16 00:03:02
4 1022
今天完成了什么:
完成图片详情页,本来打算用关联查询,根据Carving的id查询对应的Carving表和img_url表的所有数据,
select * from carving c,img_url i where c.id=i.img_id and c.id=1
但是发现这样不仅浪费资源而且在遍历数据的时候还比较麻烦,干脆新建了一个pojo分开进行查询,
<select id="get" parameterType="int" resultType="Carving">
SELECT * FROM Carving WHERE id=#{id}
</select>
<select id="getUrl" parameterType="Carving" resultType="Img_url">
SELECT url FROM img_url WHERE img_id=#{id}
</select>
分别传到前端
@RequestMapping(value = "/single", method = RequestMethod.GET)
public ModelAndView single(@RequestParam String id, Model model) {
ModelAndView mav=new ModelAndView();
Carving carving=carvingMapper.get(Integer.parseInt(id));
model.addAttribute("id",carving.getId());
model.addAttribute("name",carving.getName());
model.addAttribute("detailed",carving.getDetailed());
List<Img_url> img_urls=carvingMapper.getUrl(carving);
mav.addObject("cs", img_urls);
mav.setViewName("single");
return mav;
}
这样就得到了所有的数据,这样也省资源
<h2 class="fh5co-heading"><span>名字:${name} id:${id}</span></h2>
<p>
<p>${detailed}</p></p>
<div class="row">
<c:forEach items="${cs}" var="c" varStatus="st">
<div class="col-md-12">
<figure><img src="${c.url}" alt="Free HTML5 Bootstrap Template by " class="img-responsive">
</figure>
</div>
</c:forEach>
实现点击缩略图进入该图片详细信息的功能
然后加入tiles,
遇到的困难:
改成tiles框架后,遇到了一个之前遇到过的问题,但是当时忘记了,因为不再是在WEB-INF文件夹里查找.jsp文件所以SpringMVC之前的配置要删掉,就是下面这段
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
然后就是tiles拆分网页时这边多写了个<div>那边少写一个<span>的,导致一跳转某个页面歪歪扭扭的,
不过也已经解决了
收获:
复习了Tiles,然后发现可以使用多个模板
<definition name="default" template="/WEB-INF/template/default.jsp"/>
<definition name="base.definition" template="/WEB-INF/template/template.jsp"/>
这样就可以定义两个模板,简直不要太方便
明天的计划:
添加登录功能,添加图片上传
评论