У меня есть следующая страница jsp, в которой есть таблица, заполненная данными из arraylist в java-коде. Я поместил строки таблицы в тег ввода, чтобы иметь возможность редактировать их. теперь я хочу сохранить данные после их редактирования и оставаться на одной странице. Я думаю, что могу использовать либо javascript/jquery, либо ajax-вызов, и я читал о некоторых решениях, использующих их, но не знаю, как использовать его, чтобы заставить его работать! Любые подсказки или предложения были бы оценены много!Обновить данные на кнопку отправки и остаться на той же странице
<stripes:form beanclass="SaveStudent.action">
<table>
<c:forEach var="array" items="${actionBean.importExcel }">
<tr>
<td><input type="text" value="${array.getStudent().getPersonalNumber() }" name="pnr"/></td>
<td><input type="text" value="${array.getStudent().getEmail() }" name="email"/></td>
</tr>
</c:forEach>
</table>
<p>
<stripes:submit name="saveExcel" value="save"/>
</p>
</stripes:form>
отредактированной версии: У меня есть массив в Java, который я прошел, чтобы Jsp, который будет отображаться в виде таблицы для пользователя. когда пользователь меняет значение на странице, мне нужно, чтобы это значение обновлялось (выполняется Ajax-вызовом (уже ответили, см. ниже!)), а затем отображается пользователю и в то же время обновляется в массиве в Java-коде. Моя проблема заключается в том, как передать переменную из JQuery в jstl/jsp. Я пробовал следовать, но не работал, я не знаю, что я делаю неправильно!
<script>
$(document).ready(function() {
$("#click").click(function(){
var pnr = $("#pnr").val();
$.ajax({
type:"POST",
url:"newImport.jsp",
data: pnr,
success:function(data){
$("#pnr").html(data);
alert('Update success!');
},
failure: function(data){
alert('Update Failed!');
}
});
});
});
</script>
<%
String pnr = request.getParameter("pnr");
out.println(pnr);//For test
%>
<table>
<c:forEach var="array" items="${actionBean.importExcel }">
<tr>
<c:choose>
<c:when test="${request.getParameter('pnr')=='null'}">
<td><input type="text" value="${array.getStudent().getPersonalNumber() }" id="pnr" name="pnr"/>
</td>
</c:when>
<c:otherwise>
<td><input type="text" value="${request.getParameter('pnr') }" id="pnr" name="pnr"/>
</td>
</c:otherwise>
</c:choose>
</tr>
</c:forEach>
</table>
спасибо за ваш ответ, теперь это работает для меня, но мне интересно, когда я получу параметр ex. 'email' whith 'request.getPrameter (« email »)', как я могу заменить его значение на прежнее значение электронной почты. Я имею в виду, что я не знаю, как старое значение обновляется с новым, я тестировал новое значение, распечатывая его, поэтому он меняется на новый, но не может иметь его на старом месте! – nahid
Зачем нужна старая стоимость? Вам нужны только новые значения, но вам необходимо использовать первичный ключ в качестве базы для его обновления в базе данных.Если вам также нужен первичный ключ, сохраните первичный ключ в форме как и выполните тот же процесс, что и в ответе –
Мне не нужно старое значение. Я действительно хочу заменить (обновить) его новым. Мне просто нужно выяснить, как это сделать в jsp с jstl и jquery. Поскольку значение находится в массиве, и мне нужно обновить значение массива, я борюсь с синтаксисами в jstl и jquery. Мне нужно получить новое значение 'request.getPrameter (« email »)' и заменить его на элемент массива (данные таблицы в моем файле jsp, упомянутом в вопросе) – nahid