SSH,


(一)、准备工作——2分钟

1、选择window-preferences菜单, 键入content,将红圈位置改为xyz

2、选择菜单“File-Export”,按下图,导出文件123.epf

3、用记事本,Ctrl+F查找到123.epf中的xyz,并将改成.abcdefghijklmnopqrstuvwxyz,保存。

4、选择菜单“File-Import”,导入文件123.epf。(同上面差不多,不再附图)

到此,代码提示功能完成。

下面,建立代码提示的快捷键。

选择window-preferences菜单, 键入keys,按下图改好配置。

有了这两种代码提示,下面的步骤才方便。

(二)建立数据库——5分钟

1、进入SQL Server,如下图,右击sa,“属性”,将sa登录名的密码改为sa

2、新建数据库news,并建立表news。表结构如下图。要注意的是:

a.Id必须是主键,一定要有主键!要不到hibernate中很麻烦的。

b.Id一定要是标识列,方便程序中的添加。

这两个地方要搞好,要不错了都不知道的。

3、输入几条数据。

(三)、建立web project项目,并完成基本框架——5分钟

1、新建项目news。

2、新建六个包。包名一定要按下面的规范!

3、调出DB Browse。

在DB Browser中右键新建

4、添加SSH支持。注意:一定要按Struts、Hibernate、Spring的顺序!!

配完到这里,项目中会有红叉,这是因为jar包冲突。

5、项目上右键,如下图点击进入。

将红框中的部分Remove掉,再点击“Add Library”

如原来建立了ssh的全部包,选中即可。

如果没有建好用户库,那得点“User Libraries”新建“ssh全部包”。

6、到此,框架已基本建立好。

(四)、完成过滤器的设置——3分钟

1、新建EncodingFilter类,注意要实现javax.servlet.Filter这一个接口。

2、基本代码如下。注:红框中的内容要改一下(原来是arg0什么的)

3、进入web.xml, 加入以下配置代码。保存。

<!-- 过滤器 -->

encodingFilter
com.yenange.filter.EncodingFilter

<!-- 过滤器的映射路径 -->

encodingFilter
/*

(五)、生成实体类——2分钟

1、在DB Browse中, 找到表news,

2、按下图操作

注意:下图要写包名.类名

(六)、按Dao、Biz、Action的顺序依次完成相关的类与接口——十分钟

1、NewsDao

package com.yenange.dao;
import java.util.List;
import com.yenange.entity.News;

public interface NewsDao {
public void add(News news);
public List list();
}

2、NewsDaoHibImpl

package com.yenange.dao.hibimpl;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.yenange.dao.NewsDao;
import com.yenange.entity.News;
public class NewsDaoHibImpl extends HibernateDaoSupport implements NewsDao {
@Override
public void add(News news) {
this.getHibernateTemplate().save(news);
}
@Override
public List list() {
return this.getHibernateTemplate().executeFind(new HibernateCallback(){
@Override
public List doInHibernate(Session session)
throws HibernateException, SQLException {
String hql="select n from News n order by n.beginTime desc";
Query query=session.createQuery(hql);
return query.list();
}
});
}
}

3、NewsBiz

package com.yenange.biz.impl;
import java.util.List;
import com.yenange.entity.News;

public interface NewsBiz {
public void add(News news);
public List list();
}

4、NewsBizImpl

package com.yenange.biz.impl;
import java.util.List;
import com.yenange.biz.NewsBiz;
import com.yenange.dao.NewsDao;
import com.yenange.entity.News;

public class NewsBizImpl implements NewsBiz {
private NewsDao newsDao=null;
public void setNewsDao(NewsDao newsDao) {
this.newsDao = newsDao;
}
@Override
public void add(News news) {
this.newsDao.add(news);
}
@Override
public List list() {
return this.newsDao.list();
}
}

4、在struts-config.xml中右键,新建form与action

NewsForm代码:

package com.yenange.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import com.yenange.entity.News;

public class NewsForm extends ActionForm {
private News item = new News();
public News getItem() {
return item;
}
public void setItem(News item) {
this.item = item;
}
}

5、NewsAction代码:

package com.yenange.struts.action;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import com.yenange.biz.NewsBiz;
import com.yenange.entity.News;
import com.yenange.struts.form.NewsForm;

public class NewsAction extends DispatchAction {
private NewsBiz newsBiz=null;
public void setNewsBiz(NewsBiz newsBiz) {
this.newsBiz = newsBiz;
}
/** 添加操作 */
public ActionForward doAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
NewsForm newsForm = (NewsForm) form;
News news=newsForm.getItem();
news.setBeginTime(new Date());
newsBiz.add(news);
List list=newsBiz.list();
request.setAttribute("list", list);
return mapping.findForward("list");
}
/** 进入显示页面 */
public ActionForward toList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List list=newsBiz.list();
request.setAttribute("list", list);
return mapping.findForward("list");
}
}

(七)配置struts-config.xml——5分钟

1、进入News.java,输入以下代码:

import org.springframework.web.struts.ContextLoaderPlugIn;
import org.springframework.web.struts.DelegatingActionProxy;

很好找,它们分别是第一个和第二个文件。

2、将org.springframework.web.struts.DelegatingActionProxy覆盖action的type的=后面的值。

3、在也就是最后一句前加上:


这里不好记的是:

property=contextConfigLocation--->属性:上下文配置位置;

value="classpath:applicationContext.xml"--->值:类路径

注意:切莫把属性和值互换了!!

4、给action加上forward,要注意的是:path后面必须有“/”



path="/news" scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">


(八)配置applicationContext.xml——10分钟

1、首先把前面的一部分回车整理成:



xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance


xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd


">

要留空,方便加上一些代码。

2、心里要记住:要加的只是tx和aop这两个东西而已。



xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance


xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop=http://www.springframework.org/schema/aop


xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd


http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
">

对比一下:其实只是复制粘贴了,把其它的东东改成tx和aop而已!

3、以下是事务的代码:












这个没有太好的办法,顺序和内容都是要记的,不过大部分可以通过快捷键按出来。

transaction-manager可以通过上面的复制。

execution这个单词是一定要记的,实在记不住,用词霸看一下“死刑”。

4、依次配置Dao、Biz 、Action,比较简单了:

<!-- 2.Dao -->



<!-- 3.Biz -->



<!-- 4.Action -->

唯一要记住的是:action中不能用id, 只能用name.

至此,配置全部完毕!

(九)、做测试——2分钟

package com.yenange.test;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yenange.biz.NewsBiz;

public class Test {
public static void main(String[] args) {
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
NewsBiz newsBiz=(NewsBiz)ac.getBean("newsBiz");
List list=newsBiz.list();
System.out.println(list.size());
}
}

测试一定要做,要不十有八九是有问题的!!

(十)、写页面代码——10分钟

1、index.jsp

<%@ page language="java" pageEncoding="GBK"%>

2、tag.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>

3、add.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>


添加页面



添加新闻
标题:

内容:

作者:









4、list.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ include file="/tag.jsp" %>


显示页面


Id 标题 内容 时间 作者
${item.id } ${item.title } ${item.content } ${item.beginTime } ${item.author }



添加新闻


(十一)、运行调试——5分钟

注意:

1、如页面一片空白,试着将Tomacat清空了再试;

2、actionform中一定要new一下,要不页面是无法赋值的;

3、一定要测试,没有测试通过就不要做页面!!

4、做完配置文件,一定要耐心检查,要不一点点的错误后面很难发现的!

——————————————————————————————————

(一)、准备工作——2分钟
(二)、建立数据库——5分钟
(三)、建立web project项目,并完成基本框架——5分钟
(四)、完成过滤器的设置——3分钟
(五)、生成实体类——2分钟
(六)、按Dao、Biz、Action的顺序依次完成相关的类与接口——10分钟
(七)、配置struts-config.xml——5分钟
(八)、配置applicationContext.xml——10分钟
(九)、做测试——2分钟
(十)、写页面代码——10分钟
(十一)、运行调试——5分钟

2+5+5+3+2+10+5+10+2+10+5
=17+15+12+15
=32+27=59分钟

相关内容

    暂无相关文章