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
