2016-03-24 17 views
0

私はクエリを持っています。私はformControllerの関数に@ModelAttributeを使用しています。@ModelAttributeはどのようにjspにデータを送信します

@ModelAttribute("modelAttrVar") 
public ModelAttr function(){ 
    ModelAttr obj = new ModelAttr(); 
    //...code 
    return obj; 
} 

しかし、このモデル属性は、私は戻っていますのModelAndViewに追加されていない.....

public ModelAndView func2(){ 
    ModelAndView obj = new ModelAndView(); 
    obj.addAttribute("variableName" , value); 
    obj.setViewName("viewName"); 
    return obj; 
} 

私はJSPを見たときに今、そのモデルがmodelAttrVarは、JSPで利用可能である変数属性値を与える。どうやって ??

お願いします!

答えて

0

明確ではないものがあります。

@ModelAttribute注釈は、jsp内のフォームをコントローラにバインドして、html形式で記述されたすべてのフィールドをコントローラで使用できるようにするために使用されます。

What is @ModelAttribute in Spring MVC?

そこで、基本的@ModelAttributeアノテーションを付けるメソッドはPOSTリクエスト(フォーム送信)した後、landing point方法として作業する必要があります。

<form:form action="/greeting" > 
<form:input path="name" /> 
<form:input path="lastName" /> 

<input type="submit" value="Submit" /> 
</form:form> 

public class ModelAttrExample { 

String name; 
String lastName; 

///getter and setter... 
} 

JSP indexForm.jspとフォーム一度SpringController

@Controller 
public class GreetingController { 

@RequestMapping(value="/greeting", method=RequestMethod.GET) 
public String greetingForm(Model model) { 
    model.addAttribute("", new ModelAttrExample()); 
    return "indexForm"; 
} 

@RequestMapping(value="/greeting", method=RequestMethod.POST) 
public String greetingSubmit(@ModelAttribute ModelAttrExample example, Model model) { 

    example.getName();//same form value 
    example.getLastName(); //same form value 
    //do your logic here... 
    } 
} 

それでは、例を見てみましょう、次の2つの変数を持つPOJOを持っています提出されたgreetingSubmit()メソッドがトリガーされ、ModelAttrExampleフォームのデータで満たされ、メソッド内で利用可能になります。

so ... @ModelAttributeは、HTMLフォームフィールドから値を取り出し、このデータをクラスインスタンス変数に入れるために使用されます。

私はのために... :)

+0

おかげ卿に依頼することを躊躇しないでそれは非常によく書かれて、あなたがより多くの情報が必要な場合は

を理解することは非常に簡単です 、あなたはSpringからこのチュートリアルに従うことをお勧めあなたの返信。実際には、リスト画面からレコードを開くときです。 FormControllerに移動し、そこからmodelAttribute関数に移動します。@ ModelAttribute( "modelAttrVar") public ModelAttr function(){} これは、dbから特定のレコードを抽出します。 func2()の後、modelAndViewを受け取り、最後にjspに行きます。そして、jspで、$ {modelAttrVar.var1}のようなmodelAttrVarモデルの属性を取得します。 –

+0

これは、レコードを開くときに、ModelAndViewにModelAttrVarを追加することはありませんが、それでもjspに行き、modelAttrVarオブジェクトのデータがjspページの関連フィールドを埋めていることを意味します。どうやって? –

+0

私はまだあなたの流れを理解していない、あなたは言った "func2()後に私たちはmodelAndView"を受信した、誰func2()を呼び出している?その方法でモデルとビューをどのように受け取るのですか?レコードのselectecをリストから表示するだけで済む場合、たとえばidを取得して渡すメソッドをトリガーし、dbからデータを取り出し、抽出された値をmodelでレンダリングすることができます。addAttribute( "modelAttrVar"、youExtracteInstanceOfmodelAttrVar); jspで$ {modelAttrVar.var1}の値を取得してください。コード全体を表示し、何をすべきかを正確に説明してください – daN

関連する問題