Servlet : listes déroulantes liées
Bonsoir à tous,
Je viens vous solliciter car je bloque sur un problème depuis maintenant plusieurs jours.
J'ai deux listes déroulantes et la deuxième(dd2) dépend de la valeur de la première(dd1).
J'utilise une servlet à laquelle j'envoie en paramètre la valeur de la liste 1 pour pouvoir récupérer la liste 2 sous forme d'un objet JSON. Le problème est que le paramètre n'arrive jamais à la servlet.
Code de la jsp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html lang="en">
<head>
<title>SO question 2263996</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$('#dd1').change(function(event) {
var $dd=$("select#dd1").val();
jQuery.get('options',{val:JSON.stringify($dd)},function(responseJson) {
var $select = $('#dd2');
$select.find('option').remove();
$.each(responseJson, function(key, value) {
$('<option>').val(key).text(value).appendTo($select);
});
});
});
});
</script>
</head>
<body>
<form>
<select id="dd1" name="dd1">
<option value="400">400</option>
<option value="225">225</option>
</select>
<select id="dd2" name="dd2">
<option>Please select parent</option>
</select>
</form>
</body>
</html> |
Code de la servlet :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
package testAjax;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
public class options extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
List<String> options = new ArrayList<String>();
String val = request.getParameter("val").toString();
String json=null;
if(val.equals("400")){
options.add("200");
options.add("800");
}else{
options.add( "J'adore les pommes!");
options.add( "Je déteste les carottes!");
}
json = new Gson().toJson(options);
response.setContentType("application/json");
response.getWriter().write(json);
this.getServletContext().getRequestDispatcher( "/WEB-INF/test.jsp" ).forward( request, response );
}
} |
Le test if(val.equals("400")) renvoie une exception parce que val est vide.
Quelqu'un pourrait m'aider, s'il vous plait ? :calim2:
Merci d'avance.