У меня возникла проблема при переносе некоторых кодов стояков 1 в распорки 2. В этом случае вместо выбора одного значения для переменной deptIdFromGrid значение каждого элемента итерации добавляется к переменной. В первый раз это был совершенно рабочий случай, и java классы pojo также не вызывают проблем, которые я уже проверял. (геттеры и сеттеры находятся на правильном месте)
Это исключение, которое я наблюдаю при обнаружении неожиданного исключения, устанавливающего настройку 'searchUser.deptIdFromGrid' в 'классе com.bofa.gems.controller.action.UserRoleAction: выражение ошибки установки' searchUser.deptIdFromGrid 'со значением [' -1 ',' -1 ',' -1 ',' -1 ',' -1 ',' ',' -1 ',' -1 ',]
Фрагмент кода
<select name="searchUser.deptIdFromGrid" id="departmentL<s:property value="%{#count.index}"/>" styleClass="smallselectfordept"
onKeyDown="javascript:keydownEvent()" onmouseover="onchangeShowTitle(this)"style="width: 250px">
<option value="-1" >Select One</option>
<s:iterator var="departmentL" value="deptListInGrid">
<s:if test="%{searchUser.deptId==#departmentL.id}">
<option
title='<s:property value="{#departmentL.value}"/>'
label='<s:property value="{#departmentL.value"/>'
value='<s:property value="{#departmentL.id"/>'
selected="selected"><s:property value="{#departmentL.value}" /></option>
</s:if>
<s:else>
<option
title='<s:property value="{#departmentL.value}"/>'
label='<s:property value="{#departmentL.value"/>'
value='<s:property value="{#departmentL.id"/>'
><s:property value="{#departmentL.value}" /></option>
</s:else>
</s:iterator>
</select>
</td>
</s:if>
<s:else>
<s:hidden name="searchUser.deptIdFromGrid" value=""></s:hidden>
<td class="generaltext"><span><s:property value="%{#users.deptName}"/></span></td>
</s:else>
Struts 1 эквивалентный код
<html:select property="searchUser.deptIdFromGrid" styleId='<%="departmentL"+count%>' styleClass="smallselectfordept" onKeyDown="javascript:keydownEvent()" onmouseover="onchangeShowTitle(this)">
<html:option value="-1" >Select One</html:option>
<%-- <html:optionsCollection name="UserRoleForm" property="departmentList" label="value" value="id" /> --%>
<logic:iterate id="departmentL" name="UserRoleForm"
property="deptListInGrid">
<bean:define id="selectedId" name="departmentL" property="id" />
<logic:equal name="UserRoleForm" property="searchUser.deptId"
value="<%=(String)selectedId %>">
<option
title="<bean:write name="departmentL" property="value"/>"
label="<bean:write name="departmentL" property="value"/>"
value="<bean:write name="departmentL" property="id"/>"
selected="selected"><bean:write name="departmentL"
property="value" /></option>
</logic:equal>
<logic:notEqual name="UserRoleForm" property="searchUser.deptId"
value="<%=(String)selectedId %>">
<option
title="<bean:write name="departmentL" property="value"/>"
label="<bean:write name="departmentL" property="value"/>"
value="<bean:write name="departmentL" property="id"/>"><bean:write
name="departmentL" property="value" /></option>
</logic:notEqual>
</logic:iterate>
</html:select>