我遇到了问题,如何把这个jsp做到业务分离
<table width="750" height="60" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<!-- 商品循环开始 -->
<%
ItemsDAO itemsDao = new ItemsDAO();
ArrayList<Items> list = itemsDao.getAllItems();
if(list!=null&&list.size()>0)
{
for(int i=0;i<list.size();i++)
{
Items item = list.get(i);
%>
<div>
上面的代码业务逻辑和html混一起,看着不舒服。 我想用servlet把list拿到然后传到jsp页面,但是我不知道怎么在jsp里做循环。
下面是我改的代码
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
itemsDao = new ItemsDAO();
list = itemsDao.getAllItems();
req.getSession().setAttribute("list", list); //我把list通过seesion传给jsp
req.getRequestDispatcher("/index.jsp").forward(req,resp);
}
<jsp:useBean id="list" class="servlet.Index" scope="session"/>
<!--my god.. 这里怎么循环?
list.get(0).getName();
list.get(0).getCity();
list.get(1).getName();
list.get(1).getCity();
-->
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
有多种方法可以解决业务分离和循环功能,比如可以使用
spring
标签,或者struts
循环遍历元素,或者JSTL
标签。然后
servlet
设置数据req.getSession().setAttribute("list", list);
,到了视图层取出list变量循环即可。把数据写到一个js里面,后面的操作全部都用js.我们现在的业务基本也是这么搞
最简单的,用jstl的foreach