0

国、州、市のドロップダウンボックスがあるJSPがあります。市はデフォルトで人口があり、州と市はajaxを使用して選択された国と州に基づいて表示されます。

 <form:select path="ContactInfoVO[0].countryList" multiple="single" id="country">       
<form:option value="-1" label="-- Select Country--"></form:option>                      
<c:forEach var="country" items="${ManagerVO.ContactInfoVO[0].countryList}" varStatus="item">
<form:option value="${country.countryId}" label="${country.countryName}"/></c:forEach> </form:select>   

<form:select path="ContactInfoVO[0].stateList" multiple="single" id="state" class="small">      
<form:option value="-1" label="-- Select State--"></form:option>                        
<c:forEach var="state" items="${ManagerVO.ContactInfoVO[0].stateList}" varStatus="item">
<form:option value="${state.stateId}" label="${state.stateName}"/></c:forEach></form:select>    

<form:select path="ContactInfoVO[0].cityList" multiple="single" id="city" class="validate[required] small">     
<form:option value="-1" label="-- Select City--"></form:option>                     
<c:forEach var="city" items="${ManagerVO.ContactInfoVO[0].cityList}" varStatus="item">
<form:option value="${city.cityId}" label="${city.cityName}"/></c:forEach></form:select>

このフォームを送信すると、エラーが発生します-

 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 3 errors
    Field error in object 'ManagerVO' on field 'ContactInfoVO[0].cityList': rejected value [80930]; codes [typeMismatch.ManagerVO.ContactInfoVO[0].cityList,typeMismatch.ManagerVO.ContactInfoVO.cityList,typeMismatch.ContactInfoVO[0].cityList,typeMismatch.ContactInfoVO.cityList,typeMismatch.cityList,typeMismatch.java.util.List,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [ManagerVO.ContactInfoVO[0].cityList,ContactInfoVO[0].cityList]; arguments []; default message [ContactInfoVO[0].cityList]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.List' for property 'ContactInfoVO[0].cityList'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.admin.command.CityVO] for property 'cityList[0]': no matching editors or conversion strategy found]
    Field error in object 'ManagerVO' on field 'ContactInfoVO[0].countryList': rejected value [31]; codes [typeMismatch.ManagerVO.ContactInfoVO[0].countryList,typeMismatch.ManagerVO.ContactInfoVO.countryList,typeMismatch.ContactInfoVO[0].countryList,typeMismatch.ContactInfoVO.countryList,typeMismatch.countryList,typeMismatch.java.util.List,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [ManagerVO.ContactInfoVO[0].countryList,ContactInfoVO[0].countryList]; arguments []; default message [ContactInfoVO[0].countryList]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.List' for property 'ContactInfoVO[0].countryList'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.admin.command.CountryVO] for property 'countryList[0]': no matching editors or conversion strategy found]
    Field error in object 'ManagerVO' on field 'ContactInfoVO[0].stateList': rejected value [601]; codes [typeMismatch.ManagerVO.ContactInfoVO[0].stateList,typeMismatch.ManagerVO.ContactInfoVO.stateList,typeMismatch.ContactInfoVO[0].stateList,typeMismatch.ContactInfoVO.stateList,typeMismatch.stateList,typeMismatch.java.util.List,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [ManagerVO.ContactInfoVO[0].stateList,ContactInfoVO[0].stateList]; arguments []; default message [ContactInfoVO[0].stateList]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.List' for property 'ContactInfoVO[0].stateList'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.admin.command.StateVO] for property 'stateList[0]': no matching editors or conversion strategy found]

誰かがそれを修正する方法を教えてもらえますか?

4

2 に答える 2

1

ContactInfoVO[0].cityList出力にエラーがあります。タイプListが値のドメインクラスフィールドを設定しようとしていStringます。

ドメインクラスなどのコードを見ないと、ページが何をしようとしているのかを知るのは困難です。ユーザーが決定した単一の値をデータベースに入力しようとしている場合は、選択ドロップダウンに別のテーブル(またはクラス/列挙型)の値を入力してから、ユーザーが選択した単一の値を独自の値に設定するのが一般的です。クラス/テーブル。同じクラスで両方をやろうとしているようです。

于 2012-10-16T00:49:00.203 に答える
0

たとえば、countryIdをContactInfoVO[0].countryListに設定しようとしているようです。つまり、整数をリストに設定しているのです。

問題はここにあると思います:

 <form:select path="ContactInfoVO[0].countryList" multiple="single" id="country"> 

そこには意味がないと思いますcountryListContactInfo[0].countryIdこの場合、選択したものと一致するものになります。"${country.countryId}"

ポストContractInfoVOクラスとタグがあればより明確になります。

于 2012-10-16T01:16:55.927 に答える