【Hibernate】把Hibernate在后台查询到的数据通过Struts标签在前台进行输出
2014-09-29 15:06
489 查看
一、目标
创建两个jsp
一个jsp仅有一个Struts超级链接,仅用来触发后台Hibernate查询动作。
另一个jsp通过使用Struts标签<s:iterator>的标签,把Hibernate查出来的用户基本信息表输出。
二、基本思想
如图:
三、基本***过程
1.前台的Go.jsp如下:
Struts.xml如下:
Usr.java、Usr.hbm.xml、hibernate.cfg.xml与数据库的表跟《【Hibernate】最简单的Hibernate工程——账号注册系统》中的一模一样(点击打开链接)
本文着重讨论数据访问对象DAO类下的findAllusr.java与前台的showusr.jsp,其实showusr.jsp与《【Struts2】使用JDBC、Struts2标签、编辑WEB.XML完成较成熟的工程(3)》(点击打开链接)中的查看所有用户列表的showusr.jsp几乎是相同的,不过联系起findAllusr.java还是进行再一次的讨论。
2.findAllusr.java
3.showusr.jsp
至此,此工程开发完毕
创建两个jsp
一个jsp仅有一个Struts超级链接,仅用来触发后台Hibernate查询动作。
另一个jsp通过使用Struts标签<s:iterator>的标签,把Hibernate查出来的用户基本信息表输出。
二、基本思想
如图:
三、基本***过程
1.前台的Go.jsp如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Go</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <s:url id="url1" action="findAllusr"></s:url> <s:a href="%{url1}">显示所有用户</s:a> </body> </html>
Struts.xml如下:
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <package name="struts2" extends="struts-default"> <action name="findAllusr" class="com.hibernate.dao.findAllusr"> <result name="go">/WEB-INF/showusr.jsp</result> </action> </package> </struts>具体的编写方法见《【Struts2】创造一个最简单、最基本的Struts2工程》(点击打开链接)
Usr.java、Usr.hbm.xml、hibernate.cfg.xml与数据库的表跟《【Hibernate】最简单的Hibernate工程——账号注册系统》中的一模一样(点击打开链接)
本文着重讨论数据访问对象DAO类下的findAllusr.java与前台的showusr.jsp,其实showusr.jsp与《【Struts2】使用JDBC、Struts2标签、编辑WEB.XML完成较成熟的工程(3)》(点击打开链接)中的查看所有用户列表的showusr.jsp几乎是相同的,不过联系起findAllusr.java还是进行再一次的讨论。
2.findAllusr.java
package com.hibernate.dao; import org.hibernate.*; import org.hibernate.cfg.*; import com.hibernate.po.*; //以上是DAO类的几个必须引入的包 import java.util.*; //要使用List数据结构来保存查询结果 import com.opensymphony.xwork2.ActionContext; //要用到ActionContext.getContext()这个容器去保存查询结果 public class findAllusr { private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } //要用到多少个变量,就要有多少个私有成员变量,就要有多少个相应的GETTER,SETTER //缺一个,网页工程就无法执行。 public String execute() throws Exception{ Usr u=null; //以下三条为特定的、连接数据库的语句 SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session sess = sf.openSession(); Transaction tx = sess.beginTransaction(); //对整个表进行查询,不需要任何条件,记得查完之后,用list()方法对其进行List的转化 List<Usr> list=sess.createQuery("from Usr").list(); tx.commit(); //以下两条为特定的、关闭数据库的语句 sess.close(); sf.close(); //现在相当于存在着[{id1,username1,...},{id2,username2,..},...]这样的一个List //之后把这个List压到ActionContext容器里面,并把这个数据集合命名为allUsr ActionContext.getContext().put("allUsr", list); return "go"; //返回struts.xml一个go字符串,让其跳转 } }
3.showusr.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>用户列表</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <center> <h1> 用户列表 </h1> <!-- 以下是表头静态部分 --> <table border="1" width="80%"> <tr> <td> ID </td> <td> 用户名 </td> <td> 密码 </td> </tr> <!--意思是创建一个指向数据集合allUsr的游标,--> <!--然后对里面的东西一个一个地读完,不用定义循环,自动读完所有的东西--> <!--s:iterator必须在tr之外,表示创建行,在每一次循环之内。 --> <s:iterator value="#request.allUsr"> <tr> <td> <s:property value="id" /> </td> <td> <s:property value="username" /> </td> <td> <s:property value="password" /> </td> </tr> </s:iterator> </table> </center> </body> </html>
至此,此工程开发完毕
相关文章推荐
- struts2 通过前台标签name属性将值传到后台,没有name属性传值,则后台对象有默认值,不为null。
- easyui-datagrid行编辑,后台以主表为基表关联从表进行查询数据后,在前台行编辑字段内容的显示
- freemark标签从后台接过来数据Boolean在前台还是Boolean输出(四)
- loushang5关于DataSet通过后台查询出的数据如何映射到前台JSP页面的下拉列表中
- 【Struts2+Hibernate4】按照MVC思想使用Hibernate查询数据库,并且在前台使用OGNL表达式输出
- 通过ajax ------后台为前台动态生成html标签,并将后台数据传输到前台(传参)
- 一个AJAX列子,通过读取后台数据库数据转换为xml格式进行输出
- Struts Hibernate Spring 后台数据查询
- 通过ajax方式从后台查询出数据并填入前台的select中
- 根据已经加载好的datagrid数据,通过条件查询进行重新根据查询的条件进行加载:(无需通过后台再次查询)
- compass 整合hibernate spring 的第二种方式 ( 通过 定时器进行数据同步)compass-2.2.0 lucene-2.9.2. hibernate-distribut spring 2.5.6 paoding
- Struts中用logic:iterate标签进行选择性的输出集合
- struts的bean:write标签无法输出int和bigdecimal数据的解决方法
- Hibernate动态建表,通过hbm.xml配置文件创建数据表,进行数据库操作, 动态模型
- 定义一个不受计算机字长限制的整数类INT,要求INT与INT以及INT与C++基本数据类型int之间能进行+、-、×、÷和=运算,并且能通过cout输出INT类型的值。(持续添加)
- 导入外部数据+SQL语句的办法不支持参数查询,不过可以通过子查询进行模拟
- hibernate 查询list 集合数据后, 又把list 集合数据进行更新操作
- 前台jquery向后台hibernate传数据时遇到的问题
- 使用Struts的Action来通过Hibernate对数据库进行增、删、改、查四项操作
- 页面上通过struts标签获取javabean里的数据(s:property)