日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SSM+BJUI实现添加和编辑共用一个页面

發布時間:2025/3/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSM+BJUI实现添加和编辑共用一个页面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

SSM+BJUI在對記錄進行添加或者編輯時可以共用一個jsp頁面,然后再進行保存。

實現

1.主頁面添加兩個按鈕,一個是添加按鈕一個是編輯按鈕。

<!-- 添加按鈕--><shiro:hasPermission name="partnerAdd"><a href="${ctx}/sys/cooperativePartnersManageAction/toAdd" class="btn btn-green" data-icon="plus" data-toggle="dialog" data-width="800" data-height="400" data-id="dialog-user" data-mask="true">添加</a></shiro:hasPermission><!-- 編輯按鈕--><shiro:hasPermission name="partnerEdit">< BR>?????<ahref="${ctx}/sys/cooperativePartnersManageAction/toEdit?id={#bjui-selected}" class="btn btn-blue" data-icon="edit" data-toggle="dialog" data-width="800" data-height="400" data-id="dialog-user" data-mask="true">編輯</a></shiro:hasPermission>

三個頁面:

partnerMain就是當前主頁面,帶有添加以及編輯的頁面。

partnerEditDlg是添加和編輯共用的頁面。

添加功能實現

1.現在點擊添加按鈕,來到對應的action

@RequestMapping(value="/toAdd")public ModelAndView toAdd(){ModelAndView mv = null;try {//業務部分代碼省略//傳遞當前的操作類型的標識,左邊是op常量參數,表示操作類型,右邊是add常量參數,表示是添加操作mv.addObject(ModelAndViewConstants.OPERATION_KEY,ModelAndViewConstants.OPERATION_VALUE_ADD);//傳遞到共用頁面的標題參數,左邊是title常量參數,右邊是要顯示的標題的內容mv.addObject(ModelAndViewConstants.TITLE_KEY, "添加合作商戶信息");//跳轉的具體的頁面mv.setViewName(ModelAndViewConstants.PARTNER_EDIT_VIEW);LogService.getInstance(this).error("進入合作伙伴添加功能成功:" +ModelAndViewConstants.PARTNER_EDIT_VIEW);}catch(Exception ex) {LogService.getInstance(this).error("進入合作伙伴添加失敗:" + ex.getMessage(), ex);mv = new ModelAndView("redirect:/error.jsp");}return mv;}

2.通過上面的action可以傳遞要執行的操作類型為add,并跳轉到共用的頁面。
?

<c:set var="ctx" value="${pageContext.request.contextPath}" /> <div class="bjui-pageContent"><form action="${ctx}/sys/cooperativePartnersManageAction/doSave" class="pageForm"data-toggle="validate"? autocomplete="off"><input type="hidden" name="op" id="j_dialog_op"value="${param.op}${op}"><input type="hidden" name="id"id="j_dialog_id" value="${partner.id}"><c:if test="${!empty role}"><input type="hidden" name="status" id="j_dialog_op"value="${partner.status}"></c:if><table class="table table-condensed table-hover"><tbody><tr><td colspan="2" align="center" valign="middle"><h4>${title}</h4></td></tr><tr><td><label for="name" class="control-label x90">合作方名稱:</label><input class="" id="partnerName" type="text" name="partnerName" data-rule="required;"autocomplete="off" value="${partner.partnerName}" /></td><td><label class="control-label x90">合作方公司名稱:</label><input class="" id="companyName" type="text" name="companyName" data-rule="required;"autocomplete="off" value="${partner.companyName}" /></td></tr></tbody></table></form> </div> <script></script> <div class="bjui-pageFooter"><ul><li><button type="button" class="btn-close" data-icon="close">關閉</button></li><li><button type="submit" class="btn-default" data-icon="save">保存</button></li></ul> </div>

主要功能點;

在共享頁面添加隱藏input,來接受傳過來的op參數,即操作類型,這里是add

因為是添加所以傳過來的實體類partner沒有ID等屬性,但是要在編輯要用到,所以這里也添加一個hidden。

這里只顯示一個字段,其他的省略。

3.點擊保存時,BJUI會提交當前form,此form會提交到:${ctx}/sys/cooperativePartnersManageAction/doSave,然后執行保存的操作。

@ResponseBody@RequestMapping(value="/doSave")public Map<String, Object> doSave(SysPartners entity, String op) {Map<String, Object> jsonResult = null;try {//正式業務部分開始//與配置權限管理中相對應,實現添加或編輯完實時更新String tabid = tabid(ModelAndViewConstants.PARTNER_SYS_ID);//如果是測試簽約if(entity.getContractStatus()==0) {entity.setTestContractTime(new Date());entity.setContractStatusName("測試簽約");}//如果是正式簽約if(entity.getContractStatus()==1) {entity.setFormalContractTime(new Date());entity.setContractStatusName("正式簽約");}entity.setRecordTime(new Date());//獲得當前用戶的id和name,加入客戶對象中ShiroUser currentUser = (ShiroUser)SecurityUtils.getSubject().getPrincipal();entity.setModifyUserId(currentUser.getUserId());entity.setModifyUserName(currentUser.getAccount());//正式業務部分結束//如果op標志參數為空,或者為add 那么就執行添加操作if (null == op || ModelAndViewConstants.OPERATION_VALUE_ADD.equals(op)) {//此字段表示數據未被更改entity.setStatus("0");//執行插入數據操作,方法是有代碼生成工具自動生成int count = this.sysPartnersService.insert(entity);if (count > 0) {LogService.getInstance(this).debug("添加客戶信息成功!");}}else {//如果不是,則就是編輯后的保存操作//獲取現存數據,也是通過代碼生成工具生成的方法SysPartners currentSysPartner = this.sysPartnersService.getByPrimaryKey(entity);int count = this.sysPartnersService.updateByPrimaryKey(entity);if (count > 0) {LogService.getInstance(this).debug("編輯合作商戶信息成功!");}}Integer statusCode = 200;String msg = "合作商戶信息保存成功";jsonResult = JsonResult.jsonReturn(statusCode, msg, tabid);}catch(Exception ex) {LogService.getInstance(this).error("保存合作商戶信息失敗:" + ex.getMessage(), ex);String msg =? "保存合作商戶信息失敗:" + ex.getMessage();jsonResult = JsonResult.jsonReturnErr(msg);}return jsonResult;}

編輯功能實現

1.現在點擊主頁面的編輯按鈕

<!-- 編輯按鈕--><shiro:hasPermission name="customerEdit"><a href="${ctx}/sys/sysCustomerAction/toEdit?id={#bjui-selected}" class="btn btn-blue" data-icon="edit" data-toggle="dialog" data-width="800" data-height="400" data-id="dialog-user" data-mask="true">編輯</a></shiro:hasPermission>

2.點擊編輯按鈕會跳到后臺action,并將當前BJUI集成的能獲取選中項的ID傳過去。

現在來到后臺的toEdit

@RequestMapping(value="/toEdit")public ModelAndView toEdit(Integer id) {ModelAndView mv = null;try {//根據ID先查詢要編輯的數據SysPartners partner = this.sysPartnersService.getByPrimaryKey(id);//業務部分代碼開始//獲取簽約狀態,此處是通過關聯碼表來實現Map<String, Object> param = new HashMap<String, Object>();//0 表示正常數據param.put("status", "0");param.put("codeType", "contractStatus");//根據參數將相關碼表內容查詢出來List<SysCode> contractStatus = codeService.getByParam(param);mv = new ModelAndView();//傳遞簽約狀態mv.addObject("contractStatus", contractStatus);//業務部分代碼結束//傳遞操作類型,這里是編輯操作mv.addObject(ModelAndViewConstants.OPERATION_KEY,ModelAndViewConstants.OPERATION_VALUE_EDIT);//jsp頁面要顯示的標題titlemv.addObject(ModelAndViewConstants.TITLE_KEY, "修改合作商戶信息");//將查詢到的實體Model類傳遞mv.addObject(ModelAndViewConstants.PARTMER, partner);//跳轉到編輯界面mv.setViewName(ModelAndViewConstants.PARTNER_EDIT_VIEW);}catch(Exception ex) {LogService.getInstance(this).error("進入客戶編輯失敗:" + ex.getMessage(), ex);mv = new ModelAndView(ModelAndViewConstants.ERROR_VIEW);}return mv;}

關鍵點:

通過傳過來的ID獲取要編輯的Model實體類的數據,然后執行相應的業務,

關鍵是通過:

mv.addObject(ModelAndViewConstants.OPERATION_KEY,ModelAndViewConstants.OPERATION_VALUE_EDIT);

來傳遞操作類型,左邊是常量參數op,右邊是常量參數edit。

然后傳遞要顯示的標題,傳遞獲取的model數據,跳轉到共用的編輯頁面。

3.剩余操作與添加功能一樣,不過是編輯時將數據傳遞過去,通過input的value來賦值,如果是添加時value為空所以不顯示,如果是編輯則會將傳遞的數據進行顯示,添加與編輯都是執行同一個save方法。

?

?


?

總結

以上是生活随笔為你收集整理的SSM+BJUI实现添加和编辑共用一个页面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。