spring mvc 及NUI前端框架學習筆記
頁面傳值
一、同一頁面
直接通過$J.getbyName("id").setValue(id); Set值即可
二、跳轉頁面(businessInfoList)
1. 傳遞參數,跳轉URL
window.location = "<%= request.getContextPath() %>/flowInfo/recordQuery.action?id=" + id;
或者通過表單,然后JS 傳遞
先在form 表單中添加一個隱藏域
再在JS中通過代碼
$J.getbyName("id").setValue(id);
document.getElementById("flow").action="<%= request.getContextPath() %>/flowInfo/recordQuery.action";
document.getElementById("flow").submit();
跳轉並傳值
2 跳轉頁面並返回參數
Model 傳值
① Controller : model.addAttribute("dangaid", id);
Jsp : 隱藏域
<input class="nui-hidden" id="dangaid" name="dangaid" value="${dangaid}" />
② Controller:BusinessInfoVO vo =
this.iBusinessInfoService.getBusinessInfoVOById(id);
model.addAttribute("vo", vo);
Jsp : 直接用${vo.id}獲取
③ 直接JSP前台傳值,再通過Ajax 返回
Index.jsp
//Index.jsp function edit(){ var row = grid.getSelected(); //獲得選中的行 if (row) { var bizData = {pageType : "edit", id : row.id}; //獲得pageType和id var url = "<%= request.getContextPath() %>/roomInfo/detail.action"; $J.showmodaldialog("修改庫房", url, 400,320, bizData, function(action){ search(); });//跳轉到url頁面,並且傳輸bizData中的值 }else{ $J.cbsAlert(message.common.chooseMsg, message.common.prompt); } }
Form.jsp
//Form.jsp function setData(data) { //跨頁面傳遞的數據對象,克隆后才可以安全使用 var infos = $J.clone(data); //獲得fileFormIndex.jsp中傳輸的數據 $J.getbyName("pageType").setValue(infos.pageType); if(infos.pageType == "edit") { var ajaxConf = new cbsAjaxConf(); ajaxConf.setIsShowSuccMsg(false); ajaxConf.setSuccessFunc(function(data) { //獲得返回信息 var form = $J.getForm("dataform1"); form.setData(data); form.setChanged(false); }); //提交查詢條件 $J.postByAjax({ "id" : infos.id }, "roomInfo/getRoomInfoVOById.action", ajaxConf); } }
注:
1.@responsebody表示該方法的返回結果直接寫入HTTP response body中一般在異步獲取數據時使用,在使用@RequestMapping后,返回值通常解析為跳轉路徑,加上@responsebody后返回結果不會被解析為跳轉路徑,而是直接寫入HTTP response body中。
2.@RequestBody將HTTP請求正文插入方法中,使用適合的HttpMessageConverter將請求體寫入某個對象。
3.Js 字符串總不相等,去空格 $.trim();
4.<a>標簽用法
1) 跳轉頁面
2) 作為按鈕使用,點擊但不跳轉頁面,設置href:javascript