Попробуйте это:
<form:select path="categoryList" multiple="single">
<form:option value="" label="--"/>
<form:options items="${categoryList}" itemValue="catId" itemLabel="catName"/>
</form:select>
Я только изменил несколько атрибутов и удалил выбранный атрибут из опции. Это работает для меня ... и я думаю, должно работать и для вас.
редактирование:
Кажется, все в порядке, только ваш последний <tr>
неправильный ... у вас есть два <td>
подряд, без </td>
<tr>
<td>
<td colspan="2">
<input type="button" id="peSave" name="proeSave" value="Submit" onClick="editSaveProduct();"/>
</td>
<input type="text" id="peId"/>
</td>
</tr>
должно быть что-то вроде
<tr>
<td>
<input type="button" id="peSave" name="proeSave" value="Submit" onClick="editSaveProduct();"/>
</td>
<td colspan="2">
<input type="text" id="peId"/>
</td>
</tr>
Во-вторых, почему вы используете c: out? Вы можете заменить <td><c:out value="${categoryListVO.catName}" /></td>
на <td>${categoryListVO.catName}</td>
...
Третье - это конструкция
<td><c:if test="${productListVO.fActive}">Yes</c:if>
<c:if test="${!productListVO.fActive}">No</c:if></td>
вы можете заменить на
<c:choose>
<c:when test="${productListVO.fActive}">
Yes
</c:when>
<c:otherwise>
No
</c:otherwise>
</c:choose>
Я нахожу этот путь лучше ... В остальном все в порядке, я ничего не могу найти, что может вызвать проблему. Поиск других не правильно закрытых тегов. Есть ли какие-либо предупреждения / сообщения от редактора jsp?