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