您的位置:首页 > Web前端

[WEB前端开发]-VM中的POST请求-解决页面向control层传参的问题

2015-09-09 14:26 567 查看

页面上如何向后台传递参数?

在spreing-MVC与velocity技术中,可以通过属性值映射的方式,直接通过json格式传递参数到后台。

场景

在工作中,我遇到一个问题,在表格中点击一行数据,需要将这行数据中的某个值传递到control层。因为表格是在js文件中进行处理,无法直接映射到control中。为此,我同事给我一个解决方案如下:

Control层代码

@RequestMapping(value= "/edit")
public String edit(Model model,@RequestParam ("shopId" )String shopId) throws Exception{
LogUtil. info(MODULE, "======== 编辑店铺  开始   =======" );
//数据填充
ShopInfoResDTO dto =  shopInfoRSVDubbo.findShopInfoByShopID(Long.parseLong( shopId));
model.addAttribute("dto" , dto );
model.addAttribute("shopId" , shopId );

LogUtil. info(MODULE, "======== 编辑店铺  结束   =======" );

return "/staff/shop/shop-edit" ;
}


JS代码

在页面上通过点击编辑按钮,触发后台事件,后台通过获取到的shopId值做一些处理。

$( '#btn_code_edit').click(function(){
var val = $('#dataGridTable' ).getSelectedData();
var shopId = val[0].id;
$( '#shopId').val(shopId);//
$( '#editFrom').submit();
});


VM页面代码

表单提交post请求后,将val[0].id的值,赋给( '#shopId' ),这个( ‘#shopId’ )是vm页面上的id = “shopId”这个值。

<form id="editFrom" action= "${CONTEXT_PATH}/shop/edit" method="post">
<input type="hidden"   name ="shopId" id = "shopId" value="" />
</form>


然后再Controller层通过,@RequestParam (“shopId” )String shopId)获取到shopID值。这个@RequestParam (“shopId” )映射的是中的name属性的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息