JiveJdon Community Forums
在线248人   首页   主题表   培训咨询   标签   查搜   注册    登陆 RSS
首页 » 论坛 » 开源JdonFramework及其应用案例论坛
???en_US.forumThreadPrev.name??? 上一主题
RSS google yahoo 365Key网摘 CSDN网摘 添加到百度搜藏 POCO网摘 新浪ViVi QQ网摘
???en_US.forumThreadNext.name??? 下一主题
Go 共有 7 回复(1页) 阅读208次
 发表新帖子   回复该主题贴
hncsyilin



发表文章:
注册时间: 2008年02月18日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
自定义的action的不同方法执行同一service的同一方法,结果完全不同,为什么? 2008年03月28日 15:21 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
标签          
public class RoleManagerAction extends DispatchAction{

private final static Logger logger = Logger.getLogger(RoleManagerAction.class);

public ActionForward save(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception
{

......
EventModel em = new EventModel(); em.setModel(hasRightAssign);
rightAssignService.delete(em);//不能更新数据库和缓存

.......
}




}

public ActionForward delete(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response){
RightAssignService rightAssignService = (RightAssignService)WebAppUtil.getService("rightAssignService", request);
.......
EventModel em = new EventModel();
em.setModel(rightAssign);
rightAssignService.delete(em);//能更新数据库和缓存
......
}
}
oojdon



发表文章: 379
注册时间: 2008年10月07日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
回复:自定义的action的不同方法执行同一service的同一方法,结果完全不同,为什么? 2008年03月28日 17:29 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
为什么要自己去构造EventModel?
这些完全可以交给配置文件使用jdon的增删改查模板,因为jdon的CRUD功能横跨多个层次,你自己new一个EventModel调用service出错几率很大。
hncsyilin



发表文章: 6
注册时间: 2008年02月18日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
回复:回复:自定义的action的不同方法执行同一service的同一方法,结果完全不同,为什么? 2008年04月01日 18:29 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
问题比较杂,jdon的CRUD功能实现不了这样复杂的操作
banq



发表文章: 11308
注册时间: 2002年08月03日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言 72人关注
回复:自定义的action的不同方法执行同一service的同一方法,结果完全不同,为什么? 2008年04月02日 09:21 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
需要手工清除缓存
modelManager.removeCache(keyValue);

其实可以使用服务命令调用模式,就不必写这个Action了,不论多复杂,只要搞清头绪,就可以使用下面服务命令调用模式实现:

1.你只要将hasRightAssign建立成一个Model,或者放入一个Model中。
2.建立service :
public interface TestService{
……
void xxxxx(EventModel em);//注意,方法参数必须统一为是EventModel
……
}

3.配置Jdonframework.xml
<model key="primary key of your model主键" class ="你的model类">
<actionForm name="aForm"/>
<handler>
<service ref="testService" /> <!-- 指定对应的接口Service名称 -->
</handler>
</model>
<pojoService name="testService" class="com.jdon.framework.test.service.TestServicePOJOImp"/>
4.配置struts-config.xml
<action path="/aaa" type="com.jdon.strutsutil.ServiceMethodAction"
name="aForm" scope="request" validate="false">
<forward name="xxxxx" path="/xxx.jsp"/>
</action>
5.这样你就可以使用http://localhost:8080/aaa.do?service=testService&method=xxxxx调用了
oojdon



发表文章: 379
注册时间: 2008年10月07日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
回复:回复:自定义的action的不同方法执行同一service的同一方法,结果完全不同,为什么? 2008年04月02日 13:02 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
>>不论多复杂,只要搞清头绪,就可以使用下面服务命令调用模式实现
做框架的人必须要前瞻到当框架遇到复杂问题的时候应具备优雅的处理方法。建议banq老师在文档中除了简单对象的CRUD演示外再加上具有对象关系的模型CRUD演示,网站上的struts_jdon_hibernate算是一个具有对象关系的模型CRUD演示,可是从使用的反馈来看还存在很多问题,比如hibernate已经具备两级缓存,Jdon又在持久层框架外面加了一层缓存,怎么简单的管理同步?
Jdon框架的产品级应用是JiveJdon,但不是每个人都会来看JiveJdon的源码。框架应用在解决复杂问题的时候可能会被埋怨为什么这个问题不好处理,其实问题处理方法在JiveJdon中。
[该贴被OOjdon于2008-04-02 13:06修改过]
banq



发表文章: 11308
注册时间: 2002年08月03日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言 72人关注
回复:回复:回复:自定义的action的不同方法执行同一service的同一方法,结果完全不同,为什么? 2008年04月02日 19:05 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
>Jdon又在持久层框架外面加了一层缓存
Hibernate就是启动二级缓存,每次批量查询时,还是要查询数据库的,不信你看看输出,而是要Jdon框架后,彻底杜绝了数据库访问,Jdon框架对多页面的数据ID进行了缓存

Jdon缓存可以和Hibernate合用缓存,也可以设置为EHcache,两者不一样时,Jdon缓存更靠界面前端。

刚刚放上struts+jdon+hibernate开发视频,非常类似grails的快速开发:
http://www.jdon.com/jdonframework/jdonMovie.htm
hncsyilin



发表文章: 6
注册时间: 2008年02月18日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言
回复:回复:回复:自定义的action的不同方法执行同一service的同一方法,结果完全不同,为什么? 2008年04月07日 18:03 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
服务命令调用模式实现的话,就得在一个service中调用多个其它的service,且这里有递归调用,这种方式只能使问题处理起来更复杂,service层交叉得更多,从松散的要求来说,不符合要求
banq



发表文章: 11308
注册时间: 2002年08月03日
悄悄话
个人博客
在线? 当前离线
我要关注该作者发言 72人关注
回复:回复:回复:回复:自定义的action的不同方法执行同一service的同一方法,结果完全不同,为什么? 2008年04月09日 09:36 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
使用服务命令调用模式不一定会发生service层交叉。

发生service层交叉,是因为我们将很多业务功能都放在Service中了,而应该将这些业务功能从Service中剥离出来,Service层就是一层很薄的涂料,类似装饰模式,不应该很厚的。这其实就是Evans DDD建模设计要求的。
标签          
共有 7 回复(1页) Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
正在读取,请等待...
查询本论坛内 回复超过的热门帖子
标题
 
粗体: [b]文本[/b] 斜体: [i]文本[/i] 下划线 [u]文本[/u] 插入网上的图片 [img]http://wwww.xxxx.com/img.ext[/img] 插入代码 [code]程序代码[/code]  插入url链接 [url]http://url[/url] / [url=http://url]URL加下滑线[/url] 上传图片 word文档 Txt等附件
内容
  提交时自动拷贝以上内容到剪贴板 Ctrl+V可取出;提问题前先查询标签列表

使用帮助 手机m.jdon.com RSS add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的软件架构社区 推荐FireFox或Chrome快速浏览本站
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-10 jdon.com

anti spam