Ich habe ein Problem, wenn ich einen Parameter an mein Servlet übergebe. Insbesondere möchte ich den Wert des ausgewählten Elements einer Dropdown-Auswahl übergeben. Aber das Problem ist, dass wenn ich auf das ausgewählte Objekt klicke, nichts passiert (das Servlet sollte tatsächlich ein JSP aufrufen, um eine Tabelle zu visualisieren). Außerdem, wie kann ich diese jsp unter der Dropdown-Liste visualisieren? Ich will nicht ein weiteres Fenster öffnen: Wie Sie sehen, kann ich ein Tab-Menü haben (jeder Reiter repräsentiert eine Operation auf einer Datenbank, und ich möchte nicht geöffnet anderen Fenster, wenn ich die verschiedenen jsp nennen)Parameter an Servlet übergeben
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
String i = request.getParameter("choose");
PrintWriter out = response.getWriter();
if(i.equals("products")){
ArrayList<Products> list = new ArrayList<Products>();
list = bDBean.listProduct();
request.setAttribute("list", list);
String arg = "/" + this.getServletName() + ".jsp";
RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher(arg);
dispatcher.forward(request, response);
}
if(i.equals("login")){
// something
}
}
MY jsp
<script type="text/javascript">
function passingParameter(form1){
var choose = document.getElementById("choose");
var selectedValue =choose.options[choose.selectedIndex].value;
}
</script>
<div class="tab-content">
<div id="operation 1" class="tab-pane fade in active">
<h3>OPERATION 1</h3>
<div class="form-group">
<label for="scelta">Select the table you want to see:</label>
<form name=form1 action="NewServlet" method="post">
<select id="choose" class="form-control" name="choose"onchange="passingParameter(this.form)">
<option value="products">Products</option>
<option value="login">Login</option>
</select>
</form>
</div>
</div>
<div id="add" class="tab-pane fade">
<h3>OPERATION 2</h3>
</div>
<div id="OPERATION 2" class="tab-pane fade">
<h3>OPERATION 2</h3>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
</div>
<div id="OPERATION 3" class="tab-pane fade">
<h3>OPERATION 3</h3>
<p>Eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
</div>
</div>
Versuchen Sie, ein Leerzeichen vor onchange hinzuzufügen, wie dieser Name = "wählen" onchange –
Sie senden das Formular nie an das Servlet (keine Absenden). Denken Sie, was Sie suchen, ist Ajax – Jens
@NicolasFilotto in meinem Code gibt es einen Platz. Es ist ein Fehler, dass ich den Code hier eingefügt habe – blinkettaro