• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
HS.H °
财富来源于拼搏, 命运取决与奋斗!
博客园    首页    新随笔    联系   管理    订阅  订阅

ofbiz进击 个人遇到的奇葩问题汇总。

在本人做退货单生成的时候,因为考虑到要控制通过java类方法去调用 service服务可以方便给出提示消息,所以专门新建了一个java类,然后去重新请求request请求,下面为Java类的代码

 1 public static String confirmReturnOrder(HttpServletRequest request,
 2             HttpServletResponse response) {
 3         String responseString = "error";
 4         try {
 5             responseString = EventFactory.runRequestEvent(request, response, "makeQuickReturn");
 6         } catch (EventHandlerException e) {
 7             Debug.logError(e, "创建退货单出错", module);
 8         }
 9         return "success";
10     }
View Code

然后在这里面调用了makeQuickReturn 这个请求,这个请求里面是直接调用service服务的。

1 <request-map uri="makeQuickReturn">
2         <security https="true" auth="true"/>
3         <event type="service-multi" invoke="createReturnAndItemOrAdjustment"/>
4         <response name="success" type="request-redirect-noparam" value="findReturnOrder"></response>
5         <response name="error" type="view-last"/>
6     </request-map>
View Code

control请求里面的写法、

 1  <request-map uri="confirmReturnOrder">
 2         <security https="false" auth="true"/>
 3         <event type="java" invoke="confirmReturnOrder" path="com.brains.order.ReturnOrderEvents"></event>
 4         <response name="success" type="request-redirect-noparam" value="findReturnOrder"></response>
 5         <response name="error" type="view-last"/>
 6     </request-map>
 7     <request-map uri="makeQuickReturn">
 8         <security https="true" auth="true"/>
 9         <event type="service-multi" invoke="createReturnAndItemOrAdjustment"/>
10         <response name="success" type="request-redirect-noparam" value="findReturnOrder"></response>
11         <response name="error" type="view-last"/>
12     </request-map>
View Code

首先分析下,是在 confirmReturnOrder 的 control 里面调用的 makeQuickReturn 这个请求的,因此最终返回的view肯定是走的 confirmReturnOrder 返回的请求的。

但是即使我在两个请求里面的response 里面都定义为重定向的方式,在重定向返回的列表里面还是会带有返回过来的参数(调用service服务产生的returnId)

最后,在项目经理的指导下,才知道使用java类返回的response里面是会将调用的service服务返回的参数封装在 attributes里面,因此在页面里面,将parameters 改为requestParameters即可(因为parameters里面还包含了attributes跟parameters两种参数里面)  


作者:wangqc
出处:http://www.cnblogs.com/wangqc/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-wangqc。

posted @ 2015-04-29 15:34  没有终点的列车  阅读(389)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3