2011-04-29 15 views
6

यह मेरा नियंत्रक से है में मिलता है/पोस्ट ..जावा वसंत MVC एक ही JSP

यह मेरा JSP view..this केवल पल ... इस add.jsp है पर जोड़ने के लिए है। यह अपने आप में

<form method="post" action="/spring/krams/edit/add"> 
Linna nimi 
<input type="text" name="name"> 
<input type="submit" value="Test" name="submit" /> 
</form> 

वापस करने के लिए पोस्ट मैं JSP फ़ाइल परिवर्तन चाहते हैं, ताकि जब मैं इस फाइल पर पोस्ट, तो यह कहते हैं ... "शहर ADDED" .तो। क्या यह संभव है?

एक शहर को अद्यतन करने के बारे में क्या ??

@RequestMapping(value = "/update", method = RequestMethod.POST) 
public String updated(@RequestParam("city") int city_id, 
         @RequestParam("text") String name, 
         Model model) { 
    service.updateCity(name, city_id); 
    return "update"; 
} 

कोई वस्तु नहीं है?

+0

जेएसपी फ़ाइल में आपका क्या मतलब है? क्या आप add.jsp में "शहर जोड़ा" एक टेक्स्ट संदेश दिखाना चाहते हैं? – CoolBeans

+0

@CoolBeans: हाँ, मैंने बटन दबाया है और यह डेटाबेस में जोड़ा गया है, मैं चाहता हूं कि यह शहर जोड़ा गया – Jaanus

उत्तर

11

पोस्ट विधि में आप addAttribute विधि

@RequestMapping(value = "/add", method = RequestMethod.POST) 
public String added(@RequestParam("name") String name, Model model) { 
    City city = new City(); 
    city.setCity(name); 
    service.addCity(city); 
    model.addAttribute("city", city); 
    return "add"; 
} 

साथ एक विशेषता जोड़ सकते हैं और JSP में आप देख सकते हैं कि विशेषता शहर अशक्त या नहीं (टैग <c:if/> के साथ) है। यदि यह शून्य नहीं है, तो ऐसा इसलिए है क्योंकि इसे मॉडल में अभी जोड़ा गया है, ताकि आप जो भी चाहें दिखा सकें। ${city.city} इसकी सिर्फ एक JSTL अभिव्यक्ति जो शहर विशेषता तक पहुँचता है और फिर गेटर फोन उस विशेषता के शहर संपत्ति के लिए उपयोग करने के लिए:

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %> 

<c:if test="${city != null}"> 
    CITY <c:out value="${city.city}" /> ADDED 
</c:if> 

अद्यतन

आप अद्यतन के आधार पर अलग संदेशों की जरूरत है/आपरेशन आप ऐसा कर सकते हैं बनाने के लिए: (उदाहरण में एक अद्यतन किया जाता है जब आईडी परम शून्य नहीं है, क्योंकि आईडी शहर के पहचानकर्ता अद्यतन करने के लिए है)

@RequestMapping(value = "/add", method = RequestMethod.POST) 
public String added(@RequestParam(value="id", required=false) String id, @RequestParam("name") String name, Model model) { 
    City city; 
    String operation; 
    if(id== null){ 
     //create operation 
     city = new City(); 
     operation = "CREATE"; 

    }else{ 
     //update operation 
     city = service.findCity(id); 
     operation = "UPDATE"; 
    } 
    city.setCity(name);   
    service.saveCity(city); //save or update 
    model.addAttribute("city", city); 
    model.addAttribute("operation", operation); //add operation param 
    return "add"; 
} 

और मैं एन जेएसपी आप कर सकते हैं:

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %> 

<c:if test="${operation == 'CREATE'}"> 
    <c:if test="${city != null}"> 
      CITY <c:out value="${city.city}" /> ADDED 
    </c:if> 
    <c:if test="${operation == 'UPDATE'}"> 
      CITY <c:out value="${city.city}" /> UPDATED 
    </c:if> 
</c:if> 
+0

धन्यवाद, यह काम करता है..क्या होगा अगर मैं अद्यतन कहना चाहता हूं? .. मुख्य पोस्ट – Jaanus

+0

पर मेरा नियंत्रक देखें @ जानस आप जो भी चाहें कह सकते हैं। यदि अलग-अलग मामले हैं (बनाएं, अपडेट करें ...) आपको jsp में देखने का एक तरीका चाहिए, जो ऑपरेशन एक हो रहा है। आप कंट्रोलर में एक और विशेषता जोड़ सकते हैं उदाहरण के लिए ऑपरेशन कहा जाता है और सी में: यदि टैग टेस्ट = "$ {ऑपरेशन == 'अपडेट'}" – Javi

+0

जैसे कुछ करता है, तो क्या आप अपनी पोस्ट में उस एक्समैपल को जोड़ सकते हैं, एक और एटिरबूट कैसे जोड़ सकते हैं नियंत्रक के लिए? – Jaanus

संबंधित मुद्दे