NutzCN Logo
问答 适配器没有按预期封装前缀表单对象
发布于 3329天前 作者 xiaomi8888 2283 次浏览 复制 上一个帖子 下一个帖子
标签: mvc

提交到后台的请求
11.png

后台的controller:
22.png

可以看到Target 的images对象为null,哪里的问题?

尝试通过target.images[0].id还是不行

5 回复

我测试了一下, 可以的, 场景如下(getter/setter请自行脑补)

Pojo 类:

public class User {
  private int id;
  private List<Role> roles;
}
public class Role {
  private int id;
  private String name;
}

入口方法

@At
	@Ok("json")
	public User test_prefix_list(@Param("::user.")User user, HttpServletRequest req) {
		System.out.println(Json.toJson(req.getParameterMap()));// 这里只是打印出来方便debug
		System.out.println(Json.toJson(user)); // 这里只是打印出来方便debug
		return user;
	}

访问时发送的表单数据

user.name=wendal&user.roles[0].id=123

日志输出的结果

{
   "user.name" :["wendal"],
   "user.roles[0].id" :["123"]
}
{
   "id" :0,
   "name" :"wendal",
   "locked" :false,
   "roles" :[{
      "id" :123
   }]
}

服务器响应的内容

{"id":0,"name":"wendal","locked":false,"roles":[{"id":123}]}

可以看到user.roles是有数据的, 接收成功

我这么搞是不行的,但是我把那个index设置为从1开始,就ok了。

也就是
target.images[0].id不可以
但是
target.images[1].id可以

我用的是1.b.53这个版本,不知道有什么区别。

我测试的就是1.b.53 你检查发送的数据吧
自豪地采用 NutzCN ionic

我看了他提交到后台的请求的截图,发送后台的请求参数不对啊!截图显示的是:

target.images0.id

应该是
target.images[0].id

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