У меня есть проблема, когда я передаю параметр своему сервлету. В частности, я хочу передать значение выбранного элемента выпадающего списка. Но проблема в том, что когда я нажимаю выбранный элемент, это ничего не происходит (сервлет, по сути, должен вызывать jsp для визуализации таблицы). Кроме того, как я могу визуализировать этот jsp под выпадающим меню? Я не хочу открыть еще одно окна: как вы можете увидеть у меня есть меню вкладок (каждая вкладка представляет собой операцию по базе данных, и я не хочу открывать другие окон, когда я называю различные JSP)Передача параметра на сервлет
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
}
}
МОЙ 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>
Попытайтесь добавить пространство перед поменой, как это имя = «выбрать» onchange –
Вы никогда не отправляете форму на сервлет (без кнопки отправки). Подумайте, что вы ищете, это ajax – Jens
@NicolasFilotto в моем коде есть пробел. Это ошибка, которую я ввел здесь код – blinkettaro