2010-05-13 3 views
1

J'ai un modèle gsp, dans lequel les données de vue de création sont transmises à l'automate.Motif Grails pour réutiliser le modèle en cas d'erreur

def create = { 
    def bookInstance = new Book() 
bookInstance .properties = params 
def map = getDefaultValues() 
render(template: "create", model: [bookInstance : bookInstance , 
      title: map.title, 
      somelist: somelist 
      ....]) 

le modèle gsp

<g:select optionKey="id" from="${somelist}" name="somelist.id" value="${bookInstance ?.somelist?.id}" noSelection="['null': '']"></g:select> 

maintenant, dans la méthode de sauvegarde, s'il y a une erreur, elle retourne actuellement peuplée et l'instance validé (mise en œuvre d'échafaudage par défaut)

render(template: "create", model: [bookInstance : bookInstance ]) 

Mais les champs du gsp (page d'erreur rendue à partir de l'action de sauvegarde) sont vides. Je pourrais voir la raison car elle regarde la valeur dans "${somelist}", mais il n'est pas utilisé dans la méthode de sauvegarde. Dois-je juste vérifier null dans le gsp et utiliser quelle carte est disponible, ou une meilleure méthode (passer toute la carte dans la méthode de sauvegarde n'est pas une option)
merci d'avance ..

Répondre

1

I Je l'ai compris .. Je dois passer la même carte que dans la fermeture de création .. la raison pour laquelle nous passions les cartes dans create est parce que nous voulions remplacer la liste par défaut .. les valeurs peuplées dans bookInstance ne sont utilisées que pour conserve la sélection de l'utilisateur, mais pas toutes les valeurs.

Questions connexes