grails视图中未知数量的模型对象
在Grails2.2中工作 我需要能够处理视图中未知数量的CommitteeMember。这些都需要创建和显示 每一个都有通常的属性-姓名、地址、联系信息、用户ID 我知道,如果我将表单字段命名为相同的名称,Grails将返回一个集合供我迭代。然而,在这种情况下,我面临这样的情况: cm_名字 cm_姓氏 cm_地址 电子邮件 cm_用户ID 那么这是否意味着我将获得这些字段的集合?这并没有那么有用,因为没有办法用正确的姓氏对不同的名字进行核心化,等等 我很喜欢Grails,期待您的反馈。您可以用它来为您完成这项工作。这里有个问题。基本上,您将有一个grails视图中未知数量的模型对象,grails,model,webforms,Grails,Model,Webforms,在Grails2.2中工作 我需要能够处理视图中未知数量的CommitteeMember。这些都需要创建和显示 每一个都有通常的属性-姓名、地址、联系信息、用户ID 我知道,如果我将表单字段命名为相同的名称,Grails将返回一个集合供我迭代。然而,在这种情况下,我面临这样的情况: cm_名字 cm_姓氏 cm_地址 电子邮件 cm_用户ID 那么这是否意味着我将获得这些字段的集合?这并没有那么有用,因为没有办法用正确的姓氏对不同的名字进行核心化,等等 我很喜欢Grails,期待您的反馈。您可以
committeembers
的单一集合,这些成员将通过数据绑定填充到您的控制器中
正如@Gregg所说,在视图中,您需要字段具有索引
class MyDomain {
String name
}
class MyDomainCommand {
List<MyDomain> instances = ListUtils.lazyList([], FactoryUtils.instantiateFactory(MyDomain))
}
class MyController {
def save() {
MyDomainCommand command = new MyDomainCommand()
bindData(command, params, [include: 'instances'])
}
}
类MyDomain{
字符串名
}
类MyDomainCommand{
List instances=ListUtils.lazyList([],FactoryUtils.InstanceFactory(MyDomain))
}
类MyController{
def save(){
MyDomainCommand=new MyDomainCommand()
bindData(命令,参数,[包括:'实例']))
}
}
我会告诉你我做什么,这可能是最好的选择,也可能不是。我这样做主要是因为我不喜欢数据绑定
以您的案例为例,我会将我的字段命名为:“cm.firstName、cm.lastName、cm.address、cm.email、cm.userId”
如果您在服务中:
GrailsWebRequest webUtils = WebUtils.retrieveGrailsWebRequest()
List committeeMembers = [].withDefault {new GrailsParameterMap([:], webUtils.getCurrentRequest())}
在控制器中:
List committeeMembers = [].withDefault {new GrailsParameterMap([:], request)}
然后
然后你可以做:
committeeMembers.each {
<Create from it.firstName, it.lastName, etc>
}
committeembers.each{
}
您是一次创建一个成员集合,还是每次提交时保存一个成员并显示给他?grails会将它们作为索引数组发送回去,因此cm_firstname[0]和cm_lastname[0]将属于同一组,等等。我正在创建0。。一次n个成员。谢谢,@Gregg-我试试。谢谢你的回答。我是从我的评论中得出这个结论的。:)这也很酷。这将表单中的字段名与域类中的字段名分离,这很有用。我将选中这一个,因为我使用了它,但这两个答案都是合理的。再次感谢!
committeeMembers.each {
<Create from it.firstName, it.lastName, etc>
}