ofbiz框架入门例子详解-------删除篇

来源:互联网 发布:数控车凸圆弧编程实例 编辑:程序博客网 时间:2024/04/29 09:11

继ofbiz框架入门例子详解---插入篇之后,又试着将ofbiz操作实体的删改差做了一边,我会挨个更新出来,这篇将把删除发出来

实体类的配置请参插入篇,下面开始介绍ofbiz删除操作

=============================================================

  • 编写Service类,操作实体

public static Map<String, Object> deleteUser(DispatchContext ctx, Map<String, ? extends Object> context){//初始化一个returnMap和delegatorMap<String, Object> result = ServiceUtil.returnSuccess();GenericDelegator delegator = ctx.getDelegator();//创建主键参数Map<String,Object> pkFields = FastMap.newInstance();    pkFields.put("id", context.get("id"));    //放入主键信息       GenericPK primaryKey = delegator.makePK("User", pkFields);try {//执行按主键删除操作delegator.removeByPrimaryKey(primaryKey);} catch (GenericEntityException e) {return ServiceUtil.returnError("DB error");}return result;}

  • 在Service.xml中配置该service

<service name="deleteUser" engine="java" location="com。.service.UserService" invoke="deleteUser">    <span style="white-space:pre"></span><!-- INOUT输入输出参数 --><attribute name="id" mode="IN" type="Long" optional="false"/><!-- OUT输出参数 --></service>

  • 编写Event类,调用服务

public static String deleteUser(HttpServletRequest req, HttpServletResponse resp) throws UnsupportedEncodingException { LocalDispatcher dispatcher = (LocalDispatcher) req.getAttribute("dispatcher"); Map<String, Object> results = null; Map<String, Object> contexts = UtilMisc.toMap();  //从request得到userID String userID = req.getParameter("userID"); //放入参数列表,传给service contexts.put("id", Long.parseLong(userID)); try { //调用deleteUser Service results = dispatcher.runSync("deleteUser", contexts); } catch (GenericServiceException e) { e.printStackTrace(); return "error"; } return "success"; }

  • 在controller.xml中配置request-map

<request-map uri="deleteUser">    <security https="true" auth="false"/>    <event type="java" path="com.diyagea.event.UserEvent" invoke="deleteUser"></event>    <response name="success" type="request-redirect" value="show"/>    </request-map>
<response name="success" type="request-redirect" value="show" />表示:当返回成功是调用show这个event,show event会调用后台服务

返回一个user的list在主页展现

 <request-map uri="show">    <security https="true" auth="false"/>    <event type="java" path="com.diyagea.event.UserEvent" invoke="show"></event>    <response name="success" type="view" value="show"/>    </request-map>

  • 在页面中添加删除的按钮,调用deleteUser的event

代码如下:

<a href="deleteUser?userID=${user.id}" ><input type="button" value="delete" onclick="return confirm('delete this?')" /></a>
给按钮添加onclick事件,当点击时,弹出确认框,以免误操作


效果图如下:



现在,已经完成删除功能了,日后会发出来,crud其他部分,以及分页查询










































0 0
原创粉丝点击