2011-10-17 6 views
4

J'ai personnalisé un template généré par le module CRUD et j'ai maintenant besoin de surcharger la méthode save pour sauvegarder les données personnalisées du template. Je peux enregistrer toutes les données, mais quand je l'appelle le rendu l'action:Jouez! framework appelant l'action render() du contrôleur

render("Users/show.html", user); 

-je obtenir un NullPointerException pour les modèles objet:

enter image description here

Je passe certainement l'objet utilisateur correcte en raison quand je cours ceci:

System.out.println(user.toString()); 
//render("Users/show.html", user); 

Il écrit mon utilisateur à la console.

Toute aide sera grandement appréciée.

Controller View

Play! 1.2.3

+0

Passez-vous l'objet utilisateur dans une méthode avec l'annotation @After? La transmission de l'objet utilisateur dans renderArgs dans une autre méthode peut également dépasser la valeur transmise au modèle. – emt14

+0

pouvez-vous partager votre code de contrôleur? – mericano1

Répondre

6

Votre contrôleur est rendu

render("Users/show.html", user); 

mais le nom de l'élément dans votre modèle est objet. Il devrait être user.

MISE À JOUR SUR UN COMMENTAIRE

Les modèles originaux sur CRUD utiliser « objet » comme une abstraction à l'entité sous CRUD. Si vous vérifiez le code source du contrôleur, il est dit:

//ignoring case when template is not found, alternative also uses object 
render(type, object); 

Cela signifie qu'il ya deux options:

  1. Vous avez modifié le modèle de rupture de cette compatibilité. Cela ne semble pas être le cas dans votre scénario, bien que nous ne puissions pas voir le code complet (cela peut donc toujours être une option)
  2. Vous avez modifié le contrôleur en modifiant les objets que vous envoyez au modèle. Cela semble être votre scénario. Donc soit vous fixez le modèle pour utiliser l'utilisateur ou vous renommez l'utilisateur en l'objet.
+0

Je substitue le template généré par le module CRUD, je pense qu'il utilise un objet comme nom générique. J'ai essayé de le changer en utilisateur comme vous l'avez suggéré, cela n'a eu aucun effet sur l'erreur que j'obtiens. – Martinffx

+0

mis à jour le commentaire –

+1

Merci! la deuxième option a résolu le problème, mais a semblé en causer une autre. il ne semble plus enregistrer les tâches que j'essaie d'ajouter, avant que toutes les informations contenues dans le formulaire ne soient sauvegardées et quand j'essaye d'appeler la fonction de rendu, le modèle tombe. Maintenant, il ne semble pas enregistrer toutes les données, et rend la page, mais je pense que je devrais probablement poser cela dans une nouvelle question. Je vous remercie. – Martinffx

Questions connexes