`
jianghe_03
  • 浏览: 107948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MyEclipse做了一个STRUTS + HIBERNATE 的例子(新手看)

阅读更多
以前用的是ECLIPSE 的WTP 版本,用的HIBERNATE 是自己挂上去的,这几天在网上找了一下资料,用MyEclipse做了一个STRUTS + HIBERNATE 的例子。

觉得用MYECLIPSE 开发J2EE 方面的东东的速度还是快很多。

环境:MyEclipse Enterprise Workbench  Version: 5.1.0 GA

里面我们用的是STURTS 1.2 Hibernate 3.0

数据库: MS SQL SERVER 2000

web service: tomcat 5.5.20

JDBC 驱动:msbase.jar   mssqlserver.jar  msutil.jar   这个可以到Microsoft 的官网上去下。

现在, 我们现做这个例子

一、建一个工程。

在Package Explorer 里点右键-->New-->Project-->MyEclipse/J2EE Projects/Web Project

点Next。我们在Project Name 里面写上工程的名字,这里我们用Example01 。见《图一》

二、把JDBC 驱动导入工程中。

把这三个文件(msbase.jar   mssqlserver.jar  msutil.jar )放入:《图二》所示的lib 下。即,把这三个文件复制后,在lib上点右键粘贴就可以了。

三、把STRUTS 导入工程中

在工程名Example01上点右键-->MyEclipse-->AddStrutsCapabilities,

出现《图三》所示界面,这里我们在Struts specification 里单先Struts 1.2,点Finish。

四、现在,我们要配一下STRUTS 了。

看看我们的Package Explorer,如《图四》所示。在双击struts-config.xml,然后在struts-config.xml里面,设计

右键-->New-->Form,Acion and JSP,接着出现了Struts 1.2 Form Declaration 这个界面,填入相应的值后。如《图五》所示

点Finish。

现在那个struts-config.xml里面就生成了一个图,如《图六》所示。还差一个东东就好了,这个Action 操作成功后,我们还要让他跳转到一个页面里了,所以还得再改改那个AddTestAction.在它上面点右键-->properties

出现界面如《图七》所示,在Optional Details / Forwards 一栏里点 ADD,填入《图八》所示的东东。

五、控制层,视图层上的东东,我们弄好了,我们来做有关数所库,和数据连接方面的东东

在数据库里建表,因为这是一个DEMO ,所以,建一个简单一点的表就可以了。表的设计如《图九》所示。

六、接下来把Hibernate 的东东加入到工程中。

右键点击工程名:Example01-->MyEclipse-->AddHibernateCapabilities

出现在一个配置界面如《图十》所示,这里我选的是Hibernate 3.点Next.如《图十一》所示,再点Next如《图十二》所示填入相对应的信息,多说一句,我的那个刚才设计的那个数据库的表test是放在Test20070105下的。

点Next填入《图十三》对应的信息。

七、接下来要环境为我们生成MAPING 文件,还有POJO 和DAO。

八、Windwos-->Open Perspactive-->MyEclipse Hibernate

在DB Browser 里面点NEW 那个添加数据库的那个图标。如《图十四》所示。Finish 以后,启动它。展开后如《图十五》所示。

在test 上点右键-->Hibernate Reverse Engineering...配置情况如图十六,十七所示

九、

改一下AddTestForm,整个AddTestForm的代码如下,现在是在里面加入了两个属性,name ,password ,以及相应的GET SET 器。

/*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl

*/

package com.yourcompany.struts.form;

import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

import org.hibernate.Query;

import org.hibernate.Transaction;

import org.hibernate.classic.Session;

import com.yourcompany.hibernate.HibernateSessionFactory;

/**

* MyEclipse Struts

* Creation date: 03-15-2007

*

* XDoclet definition:

* @struts.form name="addTestForm"

*/

public class AddTestForm extends ActionForm {

/*

  * Generated Methods

  */

/**

  * Method validate

  * @param mapping

  * @param request

  * @return ActionErrors

  */

private String name;

private String password;



public String getName() {

  return name;

}

public void setName(String name) {

  this.name = name;

}

public String getPassword() {

  return password;

}

public void setPassword(String password) {

  this.password = password;

}

public ActionErrors validate(ActionMapping mapping,

   HttpServletRequest request) {

  // TODO Auto-generated method stub

    ActionErrors errors = new ActionErrors();

   

    Session session = (Session) HibernateSessionFactory.getSession();

    Transaction tx = session.beginTransaction ();

    Query query = session.createQuery("select test from Test as test where test.name = '" + this.name + "'");

    Iterator it = query.iterate ();

    if (it.hasNext()){

     errors.add ("addTest.err.name",new ActionMessage("form.addTest.err.name"));

    }

    tx.commit();

    HibernateSessionFactory.closeSession ();

    return errors;

}

/**

  * Method reset

  * @param mapping

  * @param request

  */

public void reset(ActionMapping mapping, HttpServletRequest request) {

  // TODO Auto-generated method stub

 

    this.name=null;

    this.password=null;

}

}

十、当请求提交后,进入到addTestAction 中的时候,我们要在里面,加入相应的处理代码。

整个 addTestAction 的代码如下:

/*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl

*/

package com.yourcompany.struts.action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import com.worksoft.TestDAOFactory;

import com.yourcompany.hibernate.Test;

import com.yourcompany.struts.form.AddTestForm;

/**

* MyEclipse Struts

* Creation date: 03-15-2007

*

* XDoclet definition:

* @struts.action path="/addTest" name="addTestForm" input="/form/addTest.jsp" scope="request" validate="true"

*/

public class AddTestAction extends Action {

/*

  * Generated Methods

  */

/**

  * Method execute

  * @param mapping

  * @param form

  * @param request

  * @param response

  * @return ActionForward

  */

public ActionForward execute(ActionMapping mapping, ActionForm form,

   HttpServletRequest request, HttpServletResponse response) {

  AddTestForm addTestForm = (AddTestForm) form;// TODO Auto-generated method stub

 

  Test test = new Test();

  test.setName(addTestForm.getName ());

  test.setPassword(addTestForm.getPassword ());

  TestDAOFactory testDAO = new TestDAOFactory ();

  testDAO.add(test);

   

  return mapping.findForward("success");

}

}

十一、这里的要写一个TestDAOFactory类,

整个TestDAOFactory的代码如下:

package com.worksoft;

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.Transaction;

import com.yourcompany.hibernate.HibernateSessionFactory;

import com.yourcompany.hibernate.Test;

public class TestDAOFactory {



Session session;

Transaction tx;

public void add(Test test) throws HibernateException {

  try {

   session = HibernateSessionFactory.getSession();

   tx = session.beginTransaction();

   session.save(test);

   tx.commit();

  } catch (HibernateException e) {

   throw e;

  } finally {

   if (tx != null) {

    tx.rollback();

   }

   HibernateSessionFactory.closeSession();

  }

}

}

十二、/form/addTest.jsp 全部的代码如下

<%@ page contentType="text/html; charset=utf-8"%>

<%@ page language="java"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

<script language = "javascript">

<!--

function check(){

if (loginForm.userName.value == "" || loginForm.password.value == ""){

  alert("请输入完整的信息!");

  loginForm.userName.focus();

  return false;

}

}

//-->

</script>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html>

  <head>

    <html:base />

   

    <title>login.jsp</title>

    <link href="css/webcss.css" rel="stylesheet" type="text/css">

   

    <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">

  </head>

 

  <body>

  <center>

   <p>&nbsp;</p>

   <p>&nbsp;</p>

   <table width="300" border="0" cellpadding="0" cellspacing="0">

   <html:form action="/addTest" focus="name" method="POST">

     <tr align="center" valign="middle">

       <td colspan="2" class="typt_normal">新增管理员</td>

     </tr>

     <tr>

       <td width="100" align="center" valign="middle" class="typt_normal">名称: </td>

       <td width="200" align="left"><html:text property="name" styleClass="text_s"/><html:errors property="addTest.err.name"/></td>

     </tr>

     <tr>

       <td width="100" align="center" valign="middle" class="typt_normal">密码: </td>

       <td width="200" align="left"><html:password property="password" styleClass="text_s"/></td>

     </tr>

     <tr>

       <td colspan="2" align="center" valign="middle"><html:submit value="提交" onclick="return check ();"/><html:reset value="重置"></html:reset></td>

       </tr>

</html:form>

   </table>

</center>

</body>

</html:html>

十三、我们还要在这个/form 下面建一个 success.jsp页面。

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<%

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>My JSP 'success.jsp' starting page</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>

    success <br>

  </body>

</html>

十四、现在,代码都写好了,要做部署了。

现在,我用的TOMCAT 5.5.20是装在D 盘的,要把它挂进来。

右键点击工程名:Example01-->MyEclipse-->Add and Remove Project Deployments...点ADD BUTTON

在弹出来的界面中 点 Edit server connectors..

这时会再谈一个界面出来,我们在左边那一栏里选中Tomcat 5,把Tomcat 的安装路径加进去。

如《图十八》所示,那个TOMCAT 的 单选框,一定要选成Enable,然后点apply

我们在退回到 Manage Deployments 界面,我们会发现,我们已经把Tomcat 服务器加进去了

现在选中Tomcat5 后,点Redeploy 。就部署好了

十五、启动 server 看看有没有BUG 吧



注:因为还没有研究这个图片怎么挂上来,我把他放在相册中,图一 对应的是 20070315_01.jsp 这个图片.


  

  

  

  

  

  

  

  

  

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics