Eine Drop-Down Liste dynamisch mit Daten füllen die auch als Link funktionieren? Servlets, JSP, JSTL, JS?

3 Antworten

Rendere die Listen doch so, als wolltest du sie schon anzeigen. Lade sie nicht erst nach, wenn die Navigation geöffnet wird. Im schlimmsten Fall ergeben sich dabei Lags, wenn die Netzwerkverbindung mal nicht so gut ist.

Die Elemente kannst du via CSS vorerst ausblenden und erst bei Hover einblenden lassen.

Grobes Beispiel:

<ul class="submenu">
  <!-- navigation submmenu -->
</ul>

CSS:

.submenu li {
  display: none;
}

.submenu:hover li {
  display: block;
}

Komplette Beispiele für so ein CSS-Menü findest du hier.

So sinkt die Komplexität deiner Anwendung und ebenso die Fehleranfälligkeit. Der Endnutzer kann sogar getrost jegliches Skript auf deiner Seite blockieren und es funktioniert trotzdem noch.

Und wie ich diese Gleichzeitig als <href> tags benutzen kann.

Also für die Links werden durchgehend a-Tags verwendet. Vielleicht trifft dieses Beispiel dein Problem und löst es:

<ul>
  <li>
    <a href="photography.jsp">Photography</a>
    <ul>
      <li><a href="animals.jsp">Animals</a></li>
      <li><a href="cars.jsp">Cars</a></li>
      <li><a href="nature.jsp">Nature</a></li>
    </ul>
  </li>
  <!-- further li elements ... -->
</ul>

mit JS kannst du dynamisch elemente erstellen und der Website anhängen:

document.createElement(type);

Das kannst du mit NodeJS machen. Der NodeJs server gibt dir dann über eine Rest API im JS im Browser alle Datenbankeinträge als json zurück. Diese geht du dann Stück für Stück in deinem Js code durch und erzeugst entsprechende a Tags mit der createElemet funktion.

Woher ich das weiß:Studium / Ausbildung – Informatikstudent
regex9  21.06.2020, 20:08

Wieso sollte er für diese eine Aufgabe noch einen NodeJS-Server einbinden? Er arbeitet mit Java (Servlets).

0