2009-10-09 3 views
0

L'utilisation du balisage avec le rendu n'ajoute pas la balise de formulaire.Impossible de rendre la balise de formulaire en utilisant 'render' dans Grails Controller

J'ai essayé ceci avec contentType "text/html", "txt/xml" et cela ne fonctionne pas.

J'ai dans mon contrôleur:

def myTest= { 
    render(contentType: "text/plain") { 
     div(id:"myDiv") { 
      p "somess text inside the div" 
      form (action:'get') { 
       p "inside form" 
      } 
     } 
    } 

Et je reçois ceci:

<div id='myDiv'><p>somess text inside the div</p><p>inside form</p></div> 

Je veux ceci:

<div id='myDiv'><p>somess text inside the div</p><form><p>inside form</p></form></div> 

Quelqu'un sait-il pourquoi n'ajoute le formulaire et comment l'ajouter?

Merci,

Federico

Répondre

2

j'ai trouvé ce problème plus tôt et le travail autour était d'utiliser le constructeur directement

def test = { 
    def sw = new StringWriter() 
    def b = new MarkupBuilder(sw) 
    b.html(contentType: "text/html") { 
     div(id: "myDiv") { 
      p "somess text inside the div" 
      b.form(action: 'get') { 
       p "inside form" 
      } 
     } 

    } 
    render sw 
} 

va rendre le HTML

suivant
<html contentType='text/html'> 
    <div id='myDiv'> 
    <p>somess text inside the div</p> 
    <form action='get'> 
     <p>inside form</p> 
    </form> 
    </div> 
</html> 
+0

Aaron est à droite, appeler le formulaire lui-même est probablement en conflit avec la méthode g: form taglib qui est dynamica lly ajouté à tous les contrôleurs – leebutts

Questions connexes