Есть два подхода, чтобы сделать это: на стороне клиента Предоставление или на стороне сервера визуализации:
1.Server Side
Вам не нужно, что сервлет, что вам нужно, это сделайте свой второй JSP-файл для формы ввода. И в вашем Javascript, откройте новое окно с въездной Форма JSP адрес страницы и добавить USERID параметр в строке запроса этой страницы:
function onRowClick(userId){
//Open new window with the address: 'formEntry.jsp?userId=' + userId
}
И в formEntry.jsp вы можете получить этот идентификатор из запроса Params:
String userId = request.getParameter("userId");
затем вы можете использовать этот идентификатор пользователя, чтобы восстановить свой пользовательский объект:
//get user from dao or service objects
User myUser = someUserService.findUserById(userId);
, а затем на странице JSP вы можете создавать свои поля ввода, как это:
<input name="firstName" type="String" value="<%= myUser.getFirstName %>"
Об использовании кода Java в JSP (комментарий): Вы пишут о не писать Java код страницы JSP, но для этого у вас есть 2 варианта:
- использовать некоторые стороне сервера фреймворка как JSF отделить представление от модели и контроллера
- используйте чистый JSP, но не использовать нижние слои уровня в JSP, только службы слоя, а также лучше иметь несколько библиотек тегов, чтобы уменьшить необходимый код Java внутри JSPs
2.Client Side
Второй способ заключается в использовании более JavaScript для решения этой задачи. Вы можете пойти с помощью своего сервлета и вернуть ваш сервлет объекта JSON String of User. В JavaScript, вы получите JSON и разобрать его и поместить его поля внутри HTML-теги:
function ajaxRequestSuccessHandler(data){
var user = //parse data and make a javascript object
document.getElementById('firstName').value = user.firstName;
....
//load all of data in your form.
}
, а затем вы можете отправить форму на сервлет и сохранить обновленные данные.
- Обратите внимание, что этот подход хорош для 1 или 2 формы, но если вы разрабатываете большое программное обеспечение, вам необходимо использовать некоторые дополнительные инструменты и механизмы:
1.It лучше использовать JAX- RS или Spring-MVC, чтобы предоставлять услуги RESTful и использовать тему в javascript вместо этого с чистыми сервлетами.
2.Better использовать некоторые MV * на стороне клиента, такие как angularJS или ReactJS.
Это хорошая идея, спасибо. Я хочу избежать javacode в jsp-файлах, поэтому я назвал сервлет. Итак, есть ли у вас какие-либо идеи, как использовать обходное решение без кода в jsp? Я думал использовать другой ajax в formEntry.jsp для получения userdetails. – user3189986
Ваш прием, обновите мой ответ –