问一个struts调用的基础问题

liujianliang 2008-08-01 09:41:07
下面几个类和接口为了方便我写在一起。这段代码的功能是发布一条房屋信息,是课本上的例题。
第一段代码使用了第二段的biz接口,biz接口的返回类型是void。那如果我在UpdateAction里还需要调用post吗?我个人认为是要的,不然在FwxxDAO接口里怎么定义了增删查改四个方法呢。但是如果我要返回一个List结果集,那与post的void返回类型矛盾?是不是要在FwxxBiz接口里定义多个增删查改四个方法名?有点难理解,请各位大师指点迷津。

(1)
public class PostAction extends Action{
private FwxxBiz biz=new FwxxBizImpl();
public ActionForward execute(...){
Fwxx fwxx=new Fwxx();
fwxx.setTitle();
...;
biz.post(fwxx);
}
}
(2)
public interface FwxxBiz{
public void post(Fwxx fwxx);
}
(3)
public class FwxxBizImpl implements FwxxBiz{
private FwxxDAO fwxxdao=new FwxxDAOJdbcImpl();
public void post(Fwxx fwxx){
fwxxdao.add(fwxx);
}

}
(4)
public interface FwxxDAO{
public void add(Fwxx fwxx);
public void del(int fwid);
public void update(Fwxx fwxx);
public List search(Fwxx condition);
}
(5)
public class FwxxDAOJdbcImpl extends BaseJdbcDAO implements FwxxDAO{
……
}
...全文
127 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Landor2004 2008-08-01
  • 打赏
  • 举报
回复
业务层要加增删改查四个方法的,这也是和业务是一样的,增加是一个业务,修改是一个业务,都是独立的

public interface FwxxBiz{
public void add(Fwxx fwxx);
public void update(Fwxx fwxx);
public void delete(Fwxx fwxx);
public list search(Fwxx condition);
}

实现类就不用说了
action类可以写四个,增删改查,或者写一个但是要用dispatchAction来做,实现对应的四个方法
fosjos 2008-08-01
  • 打赏
  • 举报
回复
先说说private FwxxBiz biz=new FwxxBizImpl();
现在都改用spring注入了,如果不方便用static也行,反正生成一份就行,多了浪费

FwxxBiz接口明显是为了业务流程的,方法名应该是业务逻辑相关的
而FwxxDao应该只是用于访问数据库
action中应该只调用FwxxBiz,这样层次清晰

如果要返回一个List结果集
FwxxBiz最好多定义一个方法,去调用FwxxDao.search,当然直接修改post方法也行
小雨转晴 2008-08-01
  • 打赏
  • 举报
回复
友情帮顶,o(∩_∩)o...
回头看看
rascalboy520 2008-08-01
  • 打赏
  • 举报
回复
应该是这样的!mark一下,我刚看完基础,
liujianliang 2008-08-01
  • 打赏
  • 举报
回复
上面的代码没贴好,这里重发:

(1)
public class PostAction extends Action{
private FwxxBiz biz=new FwxxBizImpl();
public ActionForward execute(...){
Fwxx fwxx=new Fwxx();
fwxx.setTitle();
…………
biz.post(fwxx);
}
}
(2)
public interface FwxxBiz{
public void post(Fwxx fwxx);
}
(3)
public class FwxxBizImpl implements FwxxBiz{
private FwxxDAO fwxxdao=new FwxxDAOJdbcImpl();
public void post(Fwxx fwxx){
fwxxdao.add(fwxx);
}
}
(4)
public interface FwxxDAO{
public void add(Fwxx fwxx);
public void del(int fwid);
public void update(Fwxx fwxx);
public List search(Fwxx condition);
}
(5)
public class FwxxDAOJdbcImpl extends BaseJdbcDAO implements FwxxDAO{
…………
}

lujunjsp 2008-08-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Landor2004 的回复:]
业务层要加增删改查四个方法的,这也是和业务是一样的,增加是一个业务,修改是一个业务,都是独立的


Java codepublic interface FwxxBiz{
public void add(Fwxx fwxx);
public void update(Fwxx fwxx);
public void delete(Fwxx fwxx);
public list search(Fwxx condition);
}


实现类就不用说了
action类可以写四个,增删改查,或者写一个但是要用dispatchAction来做,实现对应的四个方法
[/Quote]
mxlmwl 2008-08-01
  • 打赏
  • 举报
回复
层次不同。代码中的业务层只是一个示范。

jsp-action-biz-dao-DB

这个是你代码给出的层次结构。

biz为业务层,它的作用是调用dao中的方法或者其他相关方法实现具体的业务操作。注意上图给出的彼此联系,理想状态是,action只调用biz中的方法,不能直接去使用dao的方法。biz才是真正的业务封装。所以,你的想法是正确的。

但是例子中的biz层没有实现具体的业务逻辑,只给出了一个post方法,它调用dao中的add方法,实现添加操作。如果要返回查询结果,需要在biz中再自己扩含一个查询方法,然后调用dao中的List就可以了。

例子给你的主要提示是要求你弄清每个层之间的联系,这个才是最主要的。
dryZeng 2008-08-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Landor2004 的回复:]
action类可以写四个,增删改查,或者写一个但是要用dispatchAction来做,实现对应的四个方法
[/Quote]


支持
lai_chao 2008-08-01
  • 打赏
  • 举报
回复
嗯,我也觉得是这样的,学习学习

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧