Ваш список становится String"[originator.vo.BeforeSavingReq4OriginatorVO@15fc793, originator.vo.BeforeSavingReq4OriginatorVO@127bd04, originator.vo.BeforeSavingReq4OriginatorVO@3990) , но это не совсем проблема.
Проблема связана с преобразованием типов. Похоже, что список нельзя редактировать на странице просмотра, но, возможно, вы не сможете воссоздать его, когда на GET / POST вы работаете и нуждаетесь в том, чтобы его пропустили через страницу. Оооо .... в первую очередь вам нужен конвертер для создания объектов BeforeSavingReq4OriginatorVO в и из Strings.
Если эти вещи нигде не хранятся, вам нужно будет создать строку, которую вы сможете позже проанализировать. Большую часть времени это некоторая постоянная сущность, и вы можете вывести идентификатор в виде представления String, а затем сказать Struts, чтобы использовать идентификатор для загрузки его из базы данных, когда ему нужно представление objet. Чтобы узнать, как это сделать, см. Преобразование типов в Struts.
Итак, вы получите конвертер типов, работающий на ваш класс. Сейчас коллекция. Я не уверен, что это сработает, если у вас будет только одно поле с именем коллекции, а затем попытаться восстановить его из вывода toString коллекции. Может быть, когда есть преобразователь типов, и ваша строка выглядит как [1,4,5,6], она видит, что сеттер является коллекцией, а затем пытается создать объекты VO из каждого «представления строки».
Если нет, то я знаю, что вы можете перебирать свою коллекцию и создавать скрытые поля для каждого значения.
<s:iterator value="listOfValues" status="row">
<s:hidden name="listOfVoObjects[${row.index}]" value="<s:property/>"
</s:iterator>
Теперь вы, Struts, будете знать, как создать свою коллекцию, если есть конвертер типов. Если преобразователь типов отсутствует, вам необходимо создать всю структуру объекта в форме HTML:
<s:iterator value="listOfValues" status="row">
<s:hidden name="listOfVoObjects[${row.index}].itemId" value="<s:property value="itemId"/>"
<s:hidden name="listOfVoObjects[${row.index}].itemName" value="<s:property value="itemName"/>"
enter code here
</s:iterator>
В зависимости от вашей версии Java все еще существуют некоторые последствия преобразования типов. Если вы можете использовать Generics, и ваш установщик цели - List setListOfVoObjects (...), то Struts может выяснить, какой компонент должен быть создан для каждой записи. Если нет, то есть настройки преобразования типов для Коллекций и карт, описанные в документации Struts.
В файле с именем [actionName] -conversion.properties вы указываете тип bean-компонента следующим образом:
Element_listOfVoObjects=originator.vo.BeforeSavingReq4OriginatorVO
но проверьте документацию по стойкам.