2011-05-20 56 views
0

不同的请求/控制器动作之间信息我有一个这样的控制器:使用Grails,如何保留

def save = { 
     def conferenceUser = new ConferenceUser() 

     def conf_1 = Conference.get(params.conference.id) 
     def role_1 = Role.get(params.role.id) 
     def status_1 = Status.get(params.status.id) 
     def user_1 = User.get(params.user.id) 

     conferenceUser.conference = conf_1 

     conferenceUser.dateParticipated = params.dateParticipated 
     conferenceUser.accepted = params.accepted 

     conferenceUser.status = status_1 
     conferenceUser.role = role_1 
     conferenceUser.user = user_1 


      if (!conferenceUser.save(failOnError: true)) { 
     render (view: 'participatedAdd', model : [conferenceUser: conferenceUser]) 
     return 

     render(view: 'participatedAdd2', model: [conferenceUser: conferenceUser]) 

    } 
} 

基本上,这是我的两步骤注册阶段的保存控制器。我希望能够在保存第一部分后加载第二个视图(participaAdd2),但我需要为下一个控制器操作保留conferenceUser.conference值。我如何在第二个save2控制器操作中访问此值?

+0

的情况下,这个心不是有可能,我想,以填补与conferenceId信息这个选择框:。我怎么能这样做? – robert 2011-05-20 19:24:11

+0

你有没有考虑过使用网络流量? (http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.5%20Web%20Flow) - 您可以轻松地在流动作之间存储部分数据并最终保存最终对象; ) – jjczopek 2011-05-22 18:35:48

回答

3

在你participatedAdd2观点,在被提交给save2行动的形式把

<input type="hidden" name="conferenceUserId" value="${conferenceUser.id}"/> 

。然后你可以看一下ConferenceUsersave2行动:

def conferenceUser = ConferenceUser.get(params.conferenceUserId) 
+0

嘿。非常感谢你:我会试试 – robert 2011-05-20 21:26:19