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> </p>

<p> </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="提交" οnclick="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 这个图片.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值