2017-04-12 25 views
0

がサポートされていません。私はそうのようなラッパークラスを持っている:インデックスは、「com.ItemBean」

@NoArgsConstructor 
@Data 
public class ListWrapper { 

    public ListWrapper(List<Object> objects) { 

     this.objects = objects; 
    } 

    private List<Object> objects; 

} 

私はカスタム豆でラッパーを埋めるために探しています。それをItemBeanと呼んでみましょう。

それでは私が持っている:

@GetMapping("/rentSetup") 
public String setupRent(@RequestParam("companyId") Integer companyId, 
         Model model) { 

    List<Object> beans = new ArrayList<>(); 
    ItemBean bean = new Builder() 
       .someProperty(something) 
       .build(); 
    beans.add(bean); 

    ListWrapper wrapper = new ListWrapper(beans); 
    model.addAttribute("itemBeansWrapper", wrapper); 
    return "setup"; 
} 

私はビューでユーザー編集プロパティsomeProperty上を持っているしたいと思います。私は私がやるだろうと思っている:

<form th:object="${itemBeansWrapper}" 
     th:action="@{/setup(companyId=${companyId})}" 
     th:method="post"> 

    <div th:each="bean, iterStat : ${itemBeansWrapper.objects}"> 
     <input type="number" 
      th:name="${bean[__${iterStat.index}__].someProperty}"> 
    </div> 

    <button type="submit" 
      th:name="action" 
      th:value="review" value="review"> Review 
    </button> 
</form> 

しかし、これは、その結果:私が間違って何をやっている

org.springframework.expression.spel.SpelEvaluationException: EL1027E:(pos 4): Indexing into type 'com.ItemBean' is not supported 
    at org.springframework.expression.spel.ast.Indexer.getValueRef(Indexer.java:176) 

また、私はコントローラ内で、@SessionAttributes({"companyId", "itemBeansWrapper"})という注釈が付けられていますが、セッション内のページにまたがってラッパーを永続化したいので注意してください。

私が[__${iterStat.index}__]を離れると、ページはうまくコンパイルされますが、ネストされた豆を区別するためにそのようなものが必要になると思っています。

答えて

0

エラーが発生しました。それは次のようになります:

<input type="number" th:field="*{objects[__${iterStat.index}__].someProperty}"/> 
関連する問題