Al querer persistir un objeto Address, tengo un dropdown con un listado de países almacenados en la base de datos. Cuando selecciono un país (por ejemplo, España) quiero que el siguiente dropdown recargue sus regiones (Madrid, Cataluña, Asturias...), y a su vez, cuándo seleccione una región, en el tercer dropdown liste todas sus ciudades.
La cuestión es que no imprime ningún resultado en la vista.
Añadí las dependencias al archivo pom.xml
Código:
Añadí el método en el controlador<!-- To convert JSON / WS Rest --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.1</version> </dependency>
Código:
La vista contiene:....... @Controller public class AddressController { ...... @RequestMapping(value = { "/address/showRegions" }, method = RequestMethod.POST) public @ResponseBody List<Region> selectRegions(Long countryId) { List<Region> regions = regionDAO.selectRegionByCountry(countryId); return regions; }
Código:
Espero sus comentarios, gracias de antemano! <script type="text/javascript"> $(document).ready(function() { $('#country').change(function(event) { $.post('selectRegions', { countryId : parseInt($("#country option:selected").val()) }, function(response) { $('#drop-regions').append("<p>asdf</p>"); //sustituir por dropdowns de region }); }); }); </script> <c:url var="post_address" value="/address/new" /> <sf:form method="post" action="${post_address}" modelAttribute="address"> <label for="street">Street</label> <sf:input path="street" placeholder="Street" /> <label for="zip">ZIP</label> <sf:input path="zip" placeholder="ZIP" /> <label for="country">Country:</label> <sf:select path="" id="country" name="country"> <sf:option value="" label="-- Select a country --" /> <c:forEach var="country" items="${countries}"> <sf:option value="${country.id}" label="${fn:toUpperCase(country.name)}" /> </c:forEach> </sf:select> <div id="drop-regions"> <label for="region">Region:</label> <sf:select path="" id="region" name="name"> <sf:option value="" label="-- Select a region --" /> </sf:select> <div id="drop-cities"> <label for="city">City:</label> <sf:select path="" id="city" name="city"> <sf:option value="" label="-- Select a city --" /> </sf:select> </div> </div> <sf:button>Create</sf:button> </sf:form>