0

でバインドされているSpring MVCform:selectがあります。以下のコードのように名前が付けられます。form:optionsList<Custom_Object>List<Custom_Object>LOCALIZATION_LIST

path属性はform:select、選択したオプションを設定するために使用されます。

<form:form action="editNode.do" method="post" name="editNodeForm" commandName="editElementDetails">
  <table>
    <tr>
      <td>Data Type</td>
      <td>
       <form:select path="datatype" onchange="" cssClass="large" id="datatypes">
        <c:if test="${! empty LOCALIZATION_LIST}">
          <form:options items="${LOCALIZATION_LIST}" itemLabel="local_Name" itemValue="local_Name"/>
        </c:if>
       </form:select>
      </td>
    </tr>   
  </table>
</form:form>

今私の問題は、editElementDetails.datatypeまったく存在しない値が含まれている可能性があるというシナリオがあるかもしれないということLOCALIZATION_LISTです。したがって、現在、Spring MVC は最初の要素をLOCALIZATION_LIST選択済みとして表示します。

form:options選択したオブジェクトを設定するためのバインド アクションform:selectが成功したかどうかを確認する方法はありますか?

そのため、バインドが失敗した場合は、フォームに新しい値を指定して form:option を 1 つ追加できます。

4

2 に答える 2

0

注:私自身の質問に答える

今のところ、で着信コマンドオブジェクトフィールドの値を手動で検索し、LOCALIZATION_LIST見つからない場合はそれに対応する値を追加することで、それを理解しましform:optionた。

しかし、私はこのためのJSTL/Spring-MVCのすぐに使えるソリューションを見つけたいと思っていました。

コードは次のとおりです。

<form:form action="editNode.do" method="post" name="editNodeForm" commandName="editElementDetails">
  <table>
    <tr>
      <td>Data Type</td>
      <td>
       <form:select path="datatype" onchange="" cssClass="large" id="datatypes">
        <c:if test="${! empty LOCALIZATION_LIST}">
          <c:set var="contains" value="false" />
          <c:forEach var="item" items="${LOCALIZATION_LIST}">
            <c:if test="${item eq editElementDetails.datatype}">
              <c:set var="contains" value="true" />
            </c:if>
          </c:forEach>
          <c:if test="${ !contains }">
            <form:option label="${editElementDetails.datatype}" value="${editElementDetails.datatype}"/>
          </c:if>
          <form:options items="${LOCALIZATION_LIST}" itemLabel="local_Name" itemValue="local_Name"/>
        </c:if>
       </form:select>
      </td>
    </tr>   
  </table>
</form:form>
于 2013-01-19T07:51:45.517 に答える
0

あなたが達成したいのは、私が理解したことであるフォーム送信を検証するプロセスです(おそらくあなたはすべて間違っているでしょう).You can use Spring-Validator here は、それを使用するための優れたチュートリアルです。

スプリング フォームの検証。お役に立てれば。

于 2013-01-18T10:38:38.017 に答える