フィールドをオブジェクトのマップにバインドしようとすると、「*[NullValueInNestedPathException: Invalid property 'wrappedText[index]' of bean class [models.Simple]: Could not determine property type for auto-growing a default value] 」というエラーが発生しました
私が読んだことから、自動拡張はオンザフライでマップにデータを入力しようとすることに関係しています..しかし、それは私が得たのと同じくらいです..
また、事実上同じ質問をするこの質問に出くわしましたが、Spring MVC のコンテキストでは、受け入れられた回答は、OP が独自のマップを実装することを示唆しているように見えます。これの背後にある理由は何ですか?
モデル:
public class Simple {
public String text;
public List<String> stringList;
public TreeMap<String,SimpleWrapper> wrappedText=new TreeMap<String,SimpleWrapper>();
}
...
public class SimpleWrapper {
String singleString;
public void setSingleString(String singleString){
this.singleString=singleString;
}
public String getSingleString(){
return singleString;
}
public SimpleWrapper(){
this.singleString=singleString;
}
コントローラ
static Form<Simple> simpleform=form(Simple.class);
public static Result simpleForm(){
Form<Simple> filledForm=simpleform.bindFromRequest();
System.out.println(filledForm);
return ok(views.html.simpleForm.render(filledForm.get().toString()));
}
意見
@(text:String)
@import helper._
@form(routes.Management.simpleForm()){
<input type="hidden" value="string" name="stringList[0]">
<input type="hidden" value="string Again" name="stringList[1]">
<input type="hidden" value="mapp value" name="wrappedText[index].singleString">
<input type="text" id="text" name="text">
<input type="submit" value="submit">
}
これは @text に渡されました