SpringMvc ,如何将页面的List传入后台Controller

转载:http://blog.csdn.net/foyui001/article/details/47263383

在使用SpringMvc框架开发时,遇到如何将页面的List传入后台的问题,查找多方资料,得到以下答案:(经验证,好使!)

实例:

在JSP页面定义如下:

<script>
function submit(){
alert(1);
$.ajax({
url:'${ctx}/test.do',
type:'POST',
data:$('form').serialize(),
dataType:'json',
success:function(data){
alert("成功!");
}
});
}
</script>

<form id="form">
<input type="text" name="user[0].userName" value="jobs"/>
<input type="text" name="user[0].password" value="55"/><br/>
<input type="text" name="user[1].userName" value="jim"/>
<input type="text" name="user[1].password" value="21"/><br/>
</form>
<button οnclick="submit()">提交</button>

再写<button>时,要将button放在form外面,如果放在form里面,会默认执行<form action="">方法,即使你没定义,他也会执行,最好放在外面,或者你用<form action="test/test.do">方式提交数据;

错误写法:如果我们直接在Controller中如下写;

@RequestMapping(value='/test.do")

public void test(List<User> usr){}

会报无法实例化List<User>的错误!


正确写法:

在后台设定一个类,PersonList类:

public class PersonList {
private List<User> user;

public List<User> getUser(){
return user;
}
public void setUser(List<User> user){
this.user=user;
}
}

在Controller中如下:

@RequestMapping(value="/test.do")

public void test(PersonList user){

String name = user.getUser().get(0).getUserName();
System.out.println(name);

}

这样我们就可以得到,页面传过来的List了!

注意点:JSP页面上的name="user[0].password"应该与PersonList中的属性名保持一致;

SpringMVC中获取后台数据,并使用layui分页,可以按照以下步骤进行: 1. 在Controller中编写获取后台数据的方法,并返回数据: ```java @RequestMapping("/getData") @ResponseBody public Map<String, Object> getData(@RequestParam("page") int page, @RequestParam("limit") int limit) { List<Data> dataList = dataService.getDataList(page, limit); int count = dataService.getCount(); Map<String, Object> result = new HashMap<>(); result.put("code", 0); result.put("msg", ""); result.put("count", count); result.put("data", dataList); return result; } ``` 其中,getDataList方法是根据传入的page和limit参数获取对应的数据列表,getCount方法是获取数据总数。 2. 在页面中使用layui的table组件和分页组件展示数据: ```html <table class="layui-table" lay-data="{url: '/getData', page: true, limit: 10}" lay-filter="data"> <thead> <tr> <th lay-data="{field:'id', width:80}">ID</th> <th lay-data="{field:'name', width:80}">名称</th> <th lay-data="{field:'description'}">描述</th> </tr> </thead> <tbody></tbody> </table> <div id="pagination"></div> ``` 其中,lay-data属性指定了获取数据的url和分页参数,lay-filter属性指定了表格的过滤器。需要注意的是,在表格中需要指定每一列的属性,以便正确显示数据。 3. 在页面中使用layui的分页组件: ```javascript layui.use(['laypage', 'table'], function(){ var laypage = layui.laypage; var table = layui.table; laypage.render({ elem: 'pagination', limit: 10, count: 100, jump: function(obj, first){ if(!first){ table.reload('data', { where: { page: obj.curr, limit: obj.limit } }); } } }); }); ``` 其中,elem属性指定了分页组件的容器,limit属性指定了每页显示的数据量,count属性指定了数据总数。在分页组件的回调函数中,调用table.reload方法重新加载数据表格,并传入当前页和每页显示的数量参数。 这样,就可以在SpringMVC中获取后台数据,并使用layui分页展示数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值