NutzCN Logo
问答 表单对象包含集合的问题
发布于 2423天前 作者 Leewell1989 1673 次浏览 复制 上一个帖子 下一个帖子
标签:

如果表单对提交对应入口函数中的一个表单对象,且这个对象中包含一个几个,那么页面中的表单元素name该怎么写,以完成这样的功能呢?
比如入库函数是这样的:

	@At("/apply")
	@Ok("json")
	@AdaptBy(type = UploadAdaptor.class, args = { "ioc:taskUA" })
	@Override
	public Object save(@Param("..") ApplyTaskEntity task, @Param("att") TempFile[] tmpFiles)

task对象中有一个集合list。
看了一下文档,有前缀表单方式,但这个表单中只有一个对象,没必要加前缀呀。直接将name写成: list[0].prop,试了一下表单对象是接收不到这个集合的。

12 回复

依然有前缀list

没懂啊。
在不改入口函数的情况下,表单怎么写?
task.list[0].prop
task.list:0:prop
list[0].prop
list:0:prop?
貌似都不行啊

目前的办法只能去改入口函数,把@Param("..")改成前缀表单方式:@Param("::task.").然后把所有表单想的name加task.前缀。
所以这里就很尴尬了:
1 表单里边明明都是一个对象下边的属性,非得加个前缀。
2 前缀表单方式是为了解决一个表单多个对象的问题,那么既然多个对象可以提交集合,一个对象又为啥不可以呢?

贴一下 ApplyTaskEntity

public class ApplyTaskEntity {
	
	@Name
	@Column("APPLY_NO")
	@Comment("申请批次号")
	@ColDefine(type=ColType.VARCHAR, width=15)
	public String applyNo;

	@Column("APPLY_TYPE")
	@Comment("申请类型")
	@ColDefine(type=ColType.VARCHAR, width=10)
	public String applyType;
	
	@Column("ORGAN_NO")
	@Comment("申请机构")
	@ColDefine(type=ColType.VARCHAR, width=12)
	public String organNo;
	
	@Column("USER_NO")
	@Comment("申请人编号")
	@ColDefine(type=ColType.VARCHAR, width=12)
	public String userNo;
	
	@Column("RESON")
	@Comment("申请原因")
	@ColDefine(type=ColType.VARCHAR, width=500)
	public String reson;
	
	@Column("TIME")
	@Comment("申请时间")
	@ColDefine(type=ColType.DATETIME)
	public Date time;
	
	@Column("remark")
	@Comment("备注")
	@ColDefine(type=ColType.VARCHAR, width=500)
	public String remark;
	
	@Column("STATE")
	@Comment("状态")
	@ColDefine(type=ColType.VARCHAR, width=20)
	public String state;
	
	@ManyMany(from="APPLY_NO", target = FileEntity.class, to = "FILE_ID", relation = "YDM_PLEDGE_APPLY_FILE")
	@Comment("附件集合")
	public List<FileEntity> atts;
	
	@Many(field = "applyNo")
	@Comment("清单")
	public List<ApplyInfoEntity> plgs;
	
	@One(field = "userNo", target = User.class)
	@Comment("申请人")
	public User user; 
}

表单名字应该是

task.applyNo=XXX
task.atts[0].name=XXX
task.atts[0].path=XXX
task.atts[1].name=XXX
task.atts[1].path=XXX
task.plgs[0].name=XXX
....
// 对应 @Param("::task.")ApplyTaskEntity task

这种方式我知道啊,还是3楼的问题,如果表单里边的只有一个对象,入库函数用@Param(".."),这时怎么提交集合?

@Param("..") 的时候,前面的task.去掉就可以了吧?

问题就是不行啊......我就是这样想的。

额, 要不报个issue吧

ss到期了,,先去充个值。

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