2013-04-02 18 views
12

Eigentlich meine Anwendung haben Spring MVC ...Wie wird das Modellattribut in jsp mit Spring MVC angezeigt?

Ich habe User.jsp, In diesem ich bin ein leeres Formular erstellen (Textfelder, Textarea ..) Ich zeige das Formular mit der Methode unten in meinem Controller Klasse. Unter dem Code für das Hinzufügen eines leeren Formulars am Front-End jsp.

@RequestMapping(value = "user", method = RequestMethod.GET) 
public String user(Model model) throws Exception { 
    model.addAttribute("userForm", new UserForm()); 

    return "profile/user"; 
} 

Jetzt bekomme ich UserForm in Datenbank (3 Zeilen).

So .. Wie Modell Attribut hinzufügen, wenn wir dies ist sie jede Überschreibung von Modellattribut hinzufügen?

Wie wird dieses Modellattribut in Jsp mit JSTL angezeigt?

Bitte legen nahe, dass ich mir diesen Punkt stecken ..

+3

Sie in jsp wie $ zugreifen können {} userForm.someField – commit

+0

oben Code gibt leere Form, aber wie ein weiteres Modell Attribut für gleiche hinzufügen bilden? –

Antwort

16

Sie Liste des userFomrs als Modell hinzufügen kann Attribut

List<UserForm> userForms = yourDatabaseCall(); 
model.addAttribute("userForms", userForms);  

In JSTL können Sie iterieren es

<c:forEach items="${userForms}" var="userForm">  
    // Do something 
</c:forEach> 
+0

Ist das gleiche Beispiel für das gleiche Problem, wenn verfügbar, bitte geben Sie mir .. –

+0

@NarasimhaKoppadi: Versuchen Sie den vorgeschlagenen Weg und kommen Sie zurück, wenn Sie einen bestimmten Fehler erhalten. – xyz

12

Probencode

class UserForm { 
    private String name; 
    private String address; 

    //setter and getter 

} 

in Ihrem Controller

@RequestMapper(value="/user") 
    public ModelAndView user(){ 
     ModelAndView mav = new ModelAndView("userForm") ; 
     List<UserForm> userForms = yourDatabaseCall(); 
     mav.addObject("userForms", userForms); 
     return mav;`` 
    } 

in jsp Seite:

<c:forEach items="${userForms}" var="userForm">  
    <c:out value="${userForm.name}"/> 
    <c:out value="${userForm.address}"/> 
</c:forEach> 
+0

Hören, ich bin zwei mal hinzufügen und es hat Vorrang (erste ist Anzeige leer Formular Zweck zweite ist Datenbankdaten) –

+0

Zwei mal die Anfrage geht an die gleiche Methode im Controller..Wenn die Liste leer ist, zeigen die Anzeige leeres Formular . Ansonsten enthält das Formular Daten – raj

+0

Korrekt .. es zeigt .. aber Datenbank haben zwei Werte so Form auch auf der Seite zwei Mal angezeigt .. ist es richtig oder nicht? Wenn es richtig ist, habe ich nur eine Seite. –

Verwandte Themen