Es gibt zwei Ansätze, dies zu tun: Client Side Rendering oder Server Side Rendering:
1.Server Side
Sie, dass die Servlet nicht brauchen, was Sie brauchen, ist zu Erstellen Sie Ihre zweite JSP-Datei für das Eingabeformular. Und in Ihrem Javascript, öffnet sich ein neues Fenster mit Formulareintrag JSP-Seite Adresse und fügen Sie userId Parameter der Abfragezeichenfolge dieser Seite:
function onRowClick(userId){
//Open new window with the address: 'formEntry.jsp?userId=' + userId
}
und im formEntry.jsp können Sie diese ID erhalten von der Anfrage params:
String userId = request.getParameter("userId");
dann können Sie diese Benutzer-ID verwenden, um Ihre Benutzerobjekt abzurufen:
//get user from dao or service objects
User myUser = someUserService.findUserById(userId);
Und dann in der JSP-Seite können Sie Ihre Eingabefelder wie folgt erstellen:
<input name="firstName" type="String" value="<%= myUser.getFirstName %>"
über Java-Code in jsp (Kommentar) mit: Sie sind darüber schreiben nicht Java-Code in JSP-Seiten zu schreiben, aber zu diesem Zweck haben Sie 2 Möglichkeiten:
- Verwenden Sie einig Server-Seite MVC-Framework wie JSF Ansicht von Ihrem Modell und Controller
- reines JSP aber nicht verwenden untere Ebene Schichten in JSP, nur Service Layer zu trennen und besser auch einige Taglibs haben muss Java-Code innerhalb JSPs
zu verringern
2.Client Side
Der zweite Weg ist Javascript zu verwenden, um die Aufgabe zu bewältigen. Sie können mit Ihrem Servlet-Weg gehen und Ihr Servlet gibt das JSON String of User-Objekt zurück. In Javascript, können Sie die json bekommen und es analysieren und legte seine Felder in HTML-Tags:
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.
}
und dann können Sie Ihre Form an ein Servlet einreichen und aktualisierte Daten speichern.
- Beachten Sie, dass dieser Ansatz für 1 oder 2 Formen gut, aber wenn Sie größere Software entwickeln, müssen Sie einige weitere Tools und Frameworks verwenden:
1.It ist besser zu nutzen JAX- RS oder Spring-MVC, um REST-konforme Dienste verfügbar zu machen und theme in JavaScript zu verwenden, anstatt dies mit reinen Servlets zu tun.
2.Better einige Client-Seite MV * Framework wie AngularJS oder ReactJS zu verwenden.
Das ist eine gute Idee, danke. Ich möchte Javacode in jsp-Dateien vermeiden, deshalb habe ich ein Servlet aufgerufen. Also, haben Sie eine Idee, wie Sie Ihre Workaround ohne Code in JSP nehmen? Ich dachte darüber nach, einen weiteren Ajax in der formEntry.jsp zu verwenden, um Benutzerdetails zu erhalten. – user3189986
Willkommen, Update meine Antwort –