nie można powiązać danych za pomocą funkcji danych sprężynowych
Wątek jest kontynuacjąwysyłanie danych z powrotem do kontrolera-wiosna-mvc
Pracuję nad stroną ze szczegółami produktu, na której muszę pokazać użytkownikowi niektóre opcje, a użytkownik wybierze kilka z nich, a na przycisku przesyłania produkt powinien zostać dodany do koszyka. Moim zamiarem jest przeniesienie tego obiektu danych do mojego kontrolera koszyka, aby móc korzystać z tych wartości i ponieważ obiekt zawiera wartości dynamiczne, więc nie można zdefiniować wcześniej ustalonego obiektu pól. To jest mój obiekt danych
public class PrsData {
private Map<String, List<PrsCDData>> prsCDData;
public PrsData(){
this.prsCDData = MapUtils.lazyMap(new HashMap<String, List<PrsCDData>>(),
FactoryUtils.instantiateFactory(PrsCDData.class));
}
}
public class PrsCDData {
private Map<String, List<ConfiguredDesignData>> configuredDesignData;
// same lazy map initialization
}
W moim kontrolerze strony szczegółów produktu ustawiam wartości jako:
model.addAttribute("prsData", productData.getPrsData());
i na mojej stronie szczegółów produktu JSP mam to w mojej formie:
<form:form method="post" commandName="prsData" action="${addProductToCartAction}" >
<form:hidden path="prsCDData[''${prsCDDataMap.key}'']
[${status.index}].configuredDesignData['${configuredDesignDataMap.key}']
[${configuredDesignDataStatus.index}].code" />
</form:form>
Ale kiedy klikam przycisk Wyślij, otrzymuję następujący wyjątek
org.springframework.beans.InvalidPropertyException:
Invalid property 'prsCDData['Forced'][0]' of bean class [com.product.data.PrsData]:
Property referenced in indexed property path 'prsCDData['Forced'][0]'
is neither an array nor a List nor a Set nor a Map;
returned value was [com.product.data.PrsCDData@6164f07e]
Nie jestem pewien, gdzie robię źle, ponieważ na stronie szczegółów produktu te ukryte pola są poprawnie powiązane i mają przypisane nawet wartości, ale gdy formularz jest przesyłany, stoję przed tym problemem.