2015-11-28 33 views
1

我已經完成了幾個MVC控制器,並使用spring form標籤來回傳遞數據,但現在我意識到我的實際理解有點薄弱。在我目前的情況下,我實際上可以將響應作爲url參數發送,但大約有15個,如果可能的話,我寧願將它作爲pojo發送。將POJO傳遞給彈簧MVC控制器的最佳方法

我的實際問題是...是否有可能在jsp中設置彈簧樣式模型屬性,而不使用已經傳入的屬性並且不使用表單標籤?

因此,例如,一些沿

//Pojo 
Class personclass 
{ 
    private String name + getters and setters 
    private String address + getters and setters 
    private String phone + getters and setters 
    ... 
    } 

////first mvc call 
@RequestMapping ("/") 
Public ModelAndView LandingPage() 
{ 
    // no mention of Person pbject 
    Return mandvobject; 
    } 

    //jsp page 
    //This is the question! 
    SET ModelAttribute that wasn't passed in to the page 
    personclass = X 
    //New MVC call without a submit 
    window.open ("/NewMVCCall") 


    //New mvc call 
    @RequestMapping ("/NewMVCCall") 
    Public void newMVCPage(@ModelAttribute ("pc") personclass pc, Model model) 
    { 
    //process pc object 
    } 

線還是我錯過了點,我就必須把它作爲發送JSON字符串參數?對不起,我對這個問題的掌握是非常基本的,我不確定我是否可以很容易地設置自己的http表單內容,還是因爲我迄今爲止使用過Spring表單對象,所以我沒有掌握正在發生的事情的複雜性在幕後(即形式標籤轉換pojos json等)?

非常感謝,如果任何人有把我在正確的道路上的時間...

回答

0

我不知道如果我理解正確的問題,但你可以鏈接模型到控制器,無需手動傳遞它以一個視圖每次你需要它的時候,春天會照顧的是:

在控制器

public class MyController{ 

     @ModelAttribute("pc") 
     public PersonneClass getPersonnelClass(){ 
     return new PersonneClass(); 
     } 

    @RequestMapping ("/NewMVCCall") 
    Public void newMVCPage(@ModelAttribute ("pc") personclass pc, Model model) 
    { 
     //process pc object 
    } 
    //other methods 

} 

這是一個很好的做法命名類時要堅持Java約定所以 (personneClass )必須以大寫字母(PersonneClass)開頭。

+0

我認爲這就是我要找的,我之前沒有看到過@modelAttribute get函數。我拿它,然後我做一個頁面導入PersonClass到jsp頁面。對不起,問,但我將如何將它添加到window.open(「/ NewMVCCall」)?它會是一個參數還是還是我需要編輯httpRequest/Response? – gringogordo

+0

@gringogordo我認爲你正在尋找的是對'/ NewMVCCall'的ajax調用,在設置你的屬性時,你可以使用ajax提交。你在找什麼? –

+0

是的,我認爲這是謝謝!我想在沒有表單的情況下做這件事(jQuery對話框中的一系列問題),我錯過了如何在沒有表單的情況下發送數據。如果我用modelattribute personclass放置一個表單,大概我可以手動設置personclass屬性(而不是數據綁定),然後像你說的那樣用ajax發佈表單。你認爲這是對的嗎? (表單將自動合併到$ .ajax({type:「POST」,url ... call)中。對不起,花了你很多的時間,我一直在房子周圍,我是試圖確保我現在擁有它... – gringogordo

相關問題