我采用的四 struts + hibernate
jsp页面一加载即显示数据库信息(需要联合查询)
我先后采用了两种办法
第一种 直接从jsp页面访问数据层(这么做是否不安全呢)- IPasternService pasterService=new PasternService();
- List<Pastern> result=pasterService.findAll();
- int img=0;
- //循环遍历所有的系别
- for(Pastern p:result)
- {
- img++;
- int id=p.getPid();
- %>
- <table class="a1">
- <tr>
- <td class="td1"><img src="indeximages/<%=img%>.jpg" width="260" height="120" /></td>
- <td class="td2">
- <!-- 存放系名称 -->
- <a class="pasternName"><%=p.getPname() %></a>
- <div class="professionName" >
-
- <!--存放专业名称-->
-
- <%
- IProfessionService professionService =new ProfessionService();
- List<Profession> res=professionService.findById<STRONG><EM><U>(<FONT color=darkred>id</FONT></U></EM></STRONG>);
- for(Profession pr:res) //在for循环中嵌套专业名称的for循环 id 为上一个for循环查询出的条件
- {
- %>
- <a href="#"><%=pr.getPrName() %></a>
- <% }
- }
- %>
-
- </div>
复制代码 第二种 通过action访问数据层 (这么做联合查询的时候比较麻烦 不知道有没有什么好的解决办法)
<a href="queryTopic.do?id=<%=rs.getId() %>">
数据层代码- public List getTopicById(Long id)
- {
- String hql="from Topic t join t.users u where t.id="+id;
- return TopicInfoDAO.getTopic(hql);
- }
复制代码 action代码- Long id=Long.parseLong(request.getParameter("id"));
- System.out.println("topic ID 是:"+id);
- List list=new GetTopic().getTopicById(id);
- Object obj[]=null;
- obj=(Object[])list.get(0);
- Topic topic=(Topic)obj[0]; //Topic、Users是持久化类
- Users users=(Users)obj[1];
- /*List<TopicUser> list=new GetList().getListInfoBycondition(condition); */
- mark="success";
- request.setAttribute("topic", topic);
- request.setAttribute("users", users);
- return mapping.findForward(mark);
复制代码 jsp页面代码- <%
- Topic topic = (Topic)request.getAttribute("topic");
- Users users = (Users) request.getAttribute("users");
- %>
- <ul>
- <li><%=topic.getTitle() %></li>
- <li><%=topic.getCreatedate() %></li>
- <li><%=users.getUsername() %></li>
- <li><%=topic.getContent() %></li>
- </ul>
复制代码 |
|