Prueba con esto,
Código:
<form method="post" action="modificarRopa">
<c:forEach var="x" items="${requestScope.ropak}">
<table>
<tr>
<td>
<input type="text" size="35" id="nombreRopa${x.idropa}" name="nombreRopa${x.idropa}" value="${x.nombreRopa}">
</td>
<td>
<input type="text" id="precioRopa${x.idropa}" name="precioRopa${x.idropa}" value="${x.precioRopa}">
<input type="hidden" id="idropa${x.idropa}" name="idropa${x.idropa}" value="${x.idropa}">
</td>
<td>
<input type="button" name="btnEnviar" value="Modificar" onclick="javaScript:jsModificar('{x.idropa}')"></td>
</tr>
</table>
</c:forEach>
<input type="hidden" id="idropa" name="idropa" value="">
<input type="hidden" id="nombreRopa" name="nombreRopa" value="">
<input type="hidden" id="precioRopa" name="precioRopa" value="">
</form>
Aqui ya tienes los valores del registro que quieres modificar, puedes enviar esto con otros campos del formulario
Código:
function jsModificar(idRopa){
var form = document.forms[0];
var nombreRopa= document.getElementById('nombreRopa'+idRopa).value;
var precioRopa= document.getElementById('precioRopa'+idRopa).value;
form.getElementById('idropa').value=idRopa;
form.getElementById('nombreRopa').value=nombreRopa;
form.getElementById('precioRopa').value=precioRopa;
form.submit();
}
y en el servlet solo recuper esos 3 campos y actualizarlos directamente
Código:
String precioRopa=req.getParameterValues("precioRopa");
String nombreRopa=req.getParameterValues("nombreRopa");
String idropa=req.getParameterValues("idropa");
RopasFacade facade=new RopasFacade();
facade.updateRopa(Integer.parseInt(idropa), nombreRopa, Float.parseFloat(precioRopa));
He hecho esto al vuelo sin probar, pero la idea es mas o menos esa, plasmalo en tu codigo y me avisas como te fue, sino seguimso viendolo.
Saludos