2016-06-02 4 views
0

Was ist der sauberste Weg, eine Bohne von einem Federcontroller an die js ohne Ajax übergeben?sauberster Weg, um Bean-Daten von Jsp zu Js mit Json ohne Ajax zu übergeben

Ich benutze eine Feder-Controller, die eine JSP und Bohnen zurückgeben, aber ich möchte den Inhalt der Bean an die von meiner Seite verwendet Js übertragen werden.

Ich habe gelesen, dass ich meine Bohnen mit dem Controller JSon verwandeln kann, dann in einem js var setzen,

mav.put("beanInJson",toJson(mybean)) 
... 
<script> var bean=Json.stringify('${beanInJson}')</script 

aber ich will, es zu tun in nur einem Schritt, ohne zu tun, die zu die Umwandlung in der Steuerung

ich einige jsp taglib suchen, die ich so verwenden können:

mav.put("bean", mybean) 
... 
<script> var bean:${fn:toJson(bean)}</script> 

kennen Sie eine lib wer-es erlauben? Ist das der sauberste Weg ohne Ajax?

+0

Sie können Ihre Bean an ein Modell binden und dann direkt in der jsp-Seite und im Javascript auf ihre Eigenschaften zugreifen wie zombie

+0

Ich kann das nicht tun: Ich habe zu viele Eigenschaften und zu viel Bohnen zu viel JSP und zu viel Controller. Ich brauche eine automatisierte Lösung. – sab

Antwort

1

Irgendwo im Code müssen Sie die Konvertierung vornehmen.Wenn Sie es nicht in den Controller tun möchten, können Sie es in Ihren JSPs tun. Um ein Objekt in JSON zu konvertieren, können Sie den ObjectMapper der Jackson-Bibliothek verwenden Klasse.

+0

Ja, aber ich merkwürdig, als es keine Tag-Lib gibt, die das direkt tun. – sab

0

In JSP können Sie schreiben:

<script> 
    var mybean = ${beanInJson}; 
</script> 

Kontroller Sie schreiben können:

mav.put("beanInJson", new JSONObject(mybean)); 

alles, was Sie brauchen, ist die json Abhängigkeit hinzuzufügen:

<dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20160212</version> 
    </dependency> 

mybean In Java-Code kann ein Objekt oder eine Karte sein, se e org.json: json javadoc.

+0

Glaubst du, es ist der sauberste Weg, es zu tun? – sab

+0

natürlich. nur eine Jar-Abhängigkeit und keine js-Bibliotheken. und EL-JAR-Dateien sind in den meisten Java-Webservern enthalten. – auntyellow

+0

Auch ich kann es nicht für all das Objekt tun, das ich auf mav. Ich brauche eine taglib Lösung – sab