2016-04-15 10 views
0

Ich habe ähnliche Fragen zu SO gesehen, aber die Antworten waren nicht so überzeugend.Wie kann ich den HTML-Dropdown-Wert an JSTL sql: query übergeben?

Mein Programm muss den Inhalt basierend auf dem Dropdown-Wert laden. Ich habe JSTL sql: query verwendet, daher muss ich den Dropdown-Wert an das sql: query-Tag übergeben.

meinen Code

Select Book Type <br> 
<select name="bookdropdown"> 
    <option value="Crime">Crime </option> 
    <option value="Comedy">Comedy</option> 
    <option value="Mystery">Mystery</option> 
</select>  

//SQL Datasource configuration code 


     <sql:query var="listBooks" dataSource="${myDS}"> 
      SELECT * FROM Books WHERE type = ? 
      <sql:param value="${bookdropdown}" /> 
       </sql:query> 

Gibt es einen direkten Weg, um Inhalte i basierend auf dem Drop-Down-Wert geladen werden soll, wie ich versucht habe? Oder sollte ich das Servlet durchlaufen Parameter mit der URL übergeben?

Dank

Antwort

0

Der HTML-Code auf der Client-Seite im Browser funktioniert. Der JSTL-Code funktioniert auf der Serverseite. Um das ausgewählte Element an die Serverseite zu übergeben, müssen Sie das Formular senden, und Sie können auf den Inhalt des Formulars als Parameter zugreifen: ${param.bookdropdown}. Ich würde nicht anfangen, Ajax mit dieser alten Technologie zu mischen.

<sql:query var="listBooks" dataSource="${myDS}"> 
     SELECT * FROM Books WHERE type = ? 
     <sql:param value="${param.bookdropdown}" /> 
      </sql:query> 
+0

Sie schlagen vor, dass ich das Servlet durchlaufen sollte, um Inhalt basierend auf dem Dropdown-Wert zu laden? – dav191

+0

Ich schlage keine solche Sache vor, da ich keine Ahnung habe, was Sie jenseits dieser Frage erreichen wollen. Ich würde definitiv darüber nachdenken, ob es möglich ist, JSTL vollständig zu ersetzen. Aber solche Fragen gehen über SO hinaus. – Shadow

+0

* "JSTL komplett ersetzen" * Korrektur: "JSTL' sql' (und 'xml') Tag-Bibliotheken ersetzen". Sie sind in der Tat seit 2001 entmutigt (siehe auch http://stackoverflow.com/tags/jstl/info), aber bitte generiere 'c',' fmt' und 'fn' Taglibs nicht mit, sie haben immer noch ihren Wert auf den Tag. – BalusC