2017-08-23 1 views
1

私のWebページでは、すべての性質を含むリストを表示したいので、選択したものをリストに設定します。選択した要素のリストがタイムリーフチェックボックスを使って正しく設定されていない

私の問題は、一覧が正しく表示されていますが、選択された要素のリストには表示されていないことです。確かに、代わりに私の自然の属性文字列「NOM」の、それが保存されているその参照です:インスタンスここ

によって[email protected]は、チェックボックスの表示です:

checkbox display

私が欲しいもの:私がチェックしたときインスタンスによって2拳チェックボックス、私は私のコントローラで、それは前に働いていたときは、チェックボックスがlist<String>

natures.get(0).nom = "bcmc_envtraco_out" 
natures.get(0).routage = INSTANCE 

natures.get(1).nom = "bcmc_medtab_out" 
natures.get(1).routage = INSTANCE 

に大切List<Nature> naturesを持つようにしたい、私は問題のoccuを考えます赤色なので、私は何かを間違っているlist<Nature>を使用します。

このコードは次のように解釈され
<form action="#" th:action="@{/bus/topologie}" 
    th:object="${topologie}" method="post" class="form-horizontal"> 
<div class="col-sm-10" th:if="!${#lists.isEmpty(allNature)}"> 
    <div th:each="nature : ${allNature}" class="checkbox"> 
     <label th:for="${#ids.next('nature')}"> 
     <input type="checkbox" th:field="*{natures}" th:value="${nature}" class="checkboxNature" /> 
     <span th:text="${nature.nom}" class="col-sm-5">...</span> 
     <span th:text="${nature.routage.nom}" class="col-sm-5">...</span> 
     </label> 
    </div> 

(クロームでHTMLコードからコピー):

<div class="checkbox"> 
    <label for="nature1"> 
    <input type="checkbox" class="checkboxNature" value="[email protected]" id="natures3" name="natures"><input type="hidden" name="_natures" value="on"> 
    <span class="col-sm-5">bcmc_trabcmreca_out</span> 
    <span class="col-sm-7">Routage sur instance</span> 
    </label> 
</div> 

私のコントローラ内の関連するコード:

ここ

は私の関連するWebページのコードです
@ModelAttribute("allNature") 
public List<Nature> getAllNatures(Topologie topologie) throws Exception 
{ 
    return natureService.getNaturesByVersionCadre(topologie.getCadre(), topologie.getVersionCadre()); 
} 

私のオブジェクト "Topologie"の関連コード:

public class Topologie { 
    private List<Nature> natures = new ArrayList<Nature>(); 

、最終的には自然クラス:

public class Nature { 

    @NotBlank 
    private String nom; 

    @NotNull 
    private Routage routage; 

    // @NotNull 
    // private String typeCl; 

    public enum Routage { 
     INSTANCE("Routage sur instance", "^[A-Za-z0-9]{2}$ (instance)"), UCANSS(
       "Routage sur code UCANSS", "^[A-Za-z0-9]{2}$ (Code UCANSS)"), ACOSS(
       "Routage sur code ACOSS", "^[A-Za-z0-9]{2}$ (Code ACOSS)"), INSTANCE_MIAM(
       "Routage sur code instance MIAM", "^[A-Za-z0-9]{2}$ (instance)"), CODEREGIME_CODECAISSE(
       "Routage sur coderégime+code caisse", 
       "^[0-9]{2}[0-9]{3}$ (Code régime code caisse)"); 

     private final String nomRoutage; 
     // private final String codecle; 
     private final String regExp; 

     Routage(String nom, String regexp) { 
      this.nomRoutage = nom; 
      this.regExp = regexp; 
     } 

     public String getNom() { 
      return nomRoutage; 
     } 

     public String getRegExp() { 
      return regExp; 
     } 
    } 

    public Nature(String nomNature) { 
     nom = nomNature; 
     // TODO à modifier une fois récup faite dans fichier zk 
     routage = Routage.INSTANCE; 
    } 

    public String getNom() { 
     return nom; 
    } 

    public void setNom(String nom) { 
     this.nom = nom; 
    } 

    public Routage getRoutage() { 
     // TODO à modifier une fois récup faite dans fichier zk 
     if (routage == null) { 
      routage = Routage.INSTANCE; 
     } 
     return routage; 
    } 

    public void setRoutage(Routage routage) { 
     // TODO à modifier une fois récup faite dans fichier zk 
     if (routage == null) { 
      routage = Routage.INSTANCE; 
     } 
     this.routage = routage; 
    } 
} 

答えて

1

あなた番目に変更してください:

:ちょうどこのよう$ {} nature.nom

に値属性値を

<input type="checkbox" th:field="*{natures}" th:value="${nature.nom}" class="checkboxNature" /> 
+0

回答ありがとうございますが、動作は変わりません。 – jayjaypg22

+1

さて、チェックして、Thymeleafがチェックされた属性を処理する必要があります。 次にth:valueをth:value = "$ {nature.nom}"に変更してください。 – Bohdan

+0

は大変感謝しています。あなたはこの回答を変更することができます。私はそれを検証します;) – jayjaypg22

関連する問題