2013-04-02 6 views
12

W rzeczywistości moja aplikacja ma Spring MVC ...jak wyświetlić atrybut modelu w jsp przy użyciu Spring MVC?

Mam User.jsp, W tym jestem tworzenie pusty formularz (pola tekstowe, textarea ..) Wyświetlam formularz za pomocą poniższej metody W moim kontrolerem klasa. Poniższy kod umożliwia dodanie pustego formularza na stronie jP.

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

    return "profile/user"; 
} 

Teraz otrzymuję UserForm w bazie danych (3 wiersze).

Więc .. Jak dodać atrybut modelu, jeśli dodamy ten atrybut, to jest to jego nadpisanie atrybutu modelu?

Jak wyświetlić ten atrybut modelu w JSP przy użyciu JSTL?

Proszę zasugerować mi utknąłem ten punkt ..

+3

można uzyskać dostęp w JSP jak $ {userForm.someField} – commit

+0

Powyższy kod daje pustą formę, ale jak dodać jeszcze jeden atrybut modelu na sam Formularz? –

Odpowiedz

16

Możesz dodać listę userFomrs jako model atrybut

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

W JSTL można iteracyjne nad nim

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

Jest to ich przykład na ten sam problem, jeśli jest dostępny, proszę podać mi .. –

+0

@NarasimhaKoppadi: Wypróbuj sugerowany sposób i wróć, jeśli wystąpi jakiś konkretny błąd. – xyz

12

Przykładowy kod

class UserForm { 
    private String name; 
    private String address; 

    //setter and getter 

} 

W kontrolerze

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

JSP stronie:

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

Słyszę, że dodaję dwa razy i ma on przesłaniający (pierwszy to pusty formularz, drugi to dane bazy danych) –

+0

Dwa razy żądanie przechodzi do tej samej metody w kontrolerze.Jeśli lista jest pusta, wyświetlacz pokazuje pusty formularz . W przeciwnym razie formularz zawiera dane – raj

+0

Prawidłowo .. pokazuje .. ale baza danych ma dwie wartości, więc formularz również wyświetla się na stronie dwa razy ... czy jest poprawny czy nie? jeśli jest poprawna, moja strona ma tylko jeden formularz. –