NutzCN Logo
问答 复杂表单入口处理
发布于 3076天前 作者 qq_74967e40 2376 次浏览 复制 上一个帖子 下一个帖子
标签: mvc

前台表单有两个对象,User和Record,且User里含有多个Record
我前台是u.id,u.name...和r.id,r.name这种方法传递的
后台modal入口的时候
@Param("::r.")这后面怎么写才能取出多个Record呢?
请教

13 回复

给你个demo, 自己体会一下...

<form action="${base}/demo/param/list" method="post" enctype="application/x-www-form-urlencoded">
		
		<input name="user[0].name" value="ABC_Name_0"></br>
		<input name="user[0].id" value="0"></br>
		
		<input name="user[1].name" value="ABC_Name_1"></br>
		<input name="user[1].id" value="1"></br>
		
		<input name="user[2].name" value="ABC_Name_2"></br>
		<input name="user[2].id" value="2"></br>
		
		<input name="user[4].name" value="ABC_Name_4"></br>
		<input name="user[4].id" value="4"></br>
		
		<input name="user[3].name" value="ABC_Name_3"></br>
		<input name="user[3].id" value="3"></br>
		
		<input type="submit">
	</form>
	@At("/param/list")
	@Ok("json")
	public Object test_param_list(@Param("::user")List<User> users) {
		return users;
	}

输出

[{"id":0,"name":"ABC_Name_0","locked":false}, 
{"id":1,"name":"ABC_Name_1","locked":false}, 
{"id":2,"name":"ABC_Name_2","locked":false}, 
{"id":3,"name":"ABC_Name_3","locked":false}, 
{"id":4,"name":"ABC_Name_4","locked":false}]

@wendal 你说的这种我明白了
我Debug了一下
我说的情况是用HashMap<String,List>来存的。

@qq_74967e40 那用Json比较好

@wendal 对于这种比较大又复杂的表单,如何用Json呢?

把表单数据整理成一个object,然后$.ToJSON, 当成数据发到服务器去

@wendal 请教如何将一个form整理成一个Object呢?
我用了几个工具都是类似于序列化的东西,都是XX&XX的结构
没办法弄成Json格式呀

贴真正的表单和对于的bean出来吧

来自炫酷的 NutzCN

@qq_74967e40 解决方法是?

来自炫酷的 NutzCN

@wendal 我说的解决是form2json这个。
代码是这样的

User
private String name;
private String pwd;
private List<Record> records;
---------getter setter---------------
Rcord
private int id;
private String name;
private Date createTime;
--------getter setter---------------

form如下
<form>
  <input name="name" id="name" type="text">
  <input name="password" id="password" type="password">
  <input name="re.name" id="rename" type="text">
  <input name="re.createTime" id="ct" type="text">
  <input name="re.name" id="rename" type="text">
  <input name="re.createTime" id="ct" type="text">
  <input name="re.name" id="rename" type="text">
  <input name="re.createTime" id="ct" type="text">
  <input type="button" onclick="valiAndSubmit()">
</form>

其实我写错了,,,
仔细看了一下文档
应该是

<form>
  <input name="user.name" id="name" type="text">
  <input name="user.password" id="password" type="password">
  <input name="user.records[0].name" id="rename" type="text">
  <input name="user.records[0].createTime" id="ct" type="text">
  <input name="user.records[1].name" id="rename" type="text">
  <input name="user.records[1].createTime" id="ct" type="text">
  <input name="user.records[2]..name" id="rename" type="text">
  <input name="user.records[2]..createTime" id="ct" type="text">
  <input type="button" onclick="valiAndSubmit()">
</form>

@qq_74967e40 ... 那就是我最初给的例子啊

PS: user.records[2]..createTime 不太对吧,多了点号

添加回复
请先登陆
回到顶部