Я пытаюсь сделать ajax-вызов, используя jquery, в моем весеннем приложении на основе MVC.
Ниже мой контроллер ajax
@Controller
@RequestMapping("/ajax/*")
public class AjaxController extends BaseController {
private static Logger log = Logger.getLogger(AjaxController.class);
@Autowired
private ICountryService countryService;
@RequestMapping(value = "/findCountriesByRegionId", method = RequestMethod.GET)
public @ResponseBody
List<Country> findCountriesByRegionId(
@RequestParam(value = "regionId") int regionId) {
log.info("finding countries by region id [" + regionId + "]");
List<Country> countryList = countryService.findByRegionId(regionId);
return countryList;
}
и ниже мой код JavaScript
function populateCountriesByRegionId(regionId) {
alert("11");
$.getJSON("ajax/findCountriesByRegionId", {
regionId : regionId
}, function(countryList) {
alert("2");
$("#countryId").empty();
// $("#countryId").html("");
var options = $("#countryId");
options.append($("<option />").val('0').text(""));
$.each(countryList, function() {
options.append($("<option />").val(this.countryId).text(
this.countryName));
});
});
}
Но мой метод контроллера вообще не вызывается.
Когда я нахожусь на странице с URL-адресом вроде http://localhost/myApp/emp/new и мой URL-адрес ajax похож на ajax / findCountriesByRegionId, он выдает мне сообщение об ошибке, указывающее, что отображение URL-адреса myapp / emp / ajax / findCountriesByRegionId отсутствует
Почему он проверяет URL myapp / emp / ajax / findCountriesByRegionId. Это должен быть myapp / ajax / findCountriesByRegionId
Когда я подаю в суд на URL вроде / ajax / findCountriesByRegionId (добавлено / в начале), ничего не происходит. Нет ошибок вообще. Контроллер не вызван.
Я хотел поместить все мои ajax-методы в один контроллер и вызывать их при выполнении другого контроллера, например, emp в этом случае.
Пожалуйста, помогите.