2014-01-02 4 views
0

Я запускаю приложение Spring с помощью JQuery. Но приложение не работает. После вызова функции JQuery приложение не работает. Например, пожалуйста, обратитесь к изображению ниже: alert('name') после того, как $('#name').val(); не работает. Может ли кто-нибудь рассказать, почему он не работает?Проблема в Spring MVC, обслуживающая статические ресурсы

Я добавил файл JQuery в папку js в WebContent.

И для импорта JQuery я использовал

<script src="/AjaxWithSpringMVC2Annotation/js/jquery.js"></script> 

в JSP-странице.

Вот полный исходный код JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Add Users using ajax</title> 
<script src="/AjaxWithSpringMVC2Annotation/js/jquery.js"></script> 
<script type="text/javascript"> 
    function doAjaxPost() { 
     // get the form values 
     alert('doAjaxPost '); 
     var name = $('#name').val(); 
     alert('name '); 
     var education = $('#education').val(); 
     alert('education '); 

     $.ajax({ 
      type : "POST", 
      url : "/AjaxWithSpringMVC2Annotation/AddUser.htm", 
      data : "name=" + name + "&education=" + education, 
      success : function(response) { 
       // we have the response 
       $('#info').html(response); 
       $('#name').val(''); 
       $('#education').val(''); 
      }, 
      error : function(e) { 
       alert('Error: ' + e); 
      } 
     }); 
    } 
</script> 
</head> 
<body> 
    <h1>Add Users using Ajax ........</h1> 
    <table> 
     <tr> 
      <td>Enter your name :</td> 
      <td><input type="text" id="name"><br /></td> 
     </tr> 
     <tr> 
      <td>Education :</td> 
      <td><input type="text" id="education"><br /></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input type="button" value="Add Users" 
       onclick="doAjaxPost()"><br /></td> 
     </tr> 
     <tr> 
      <td colspan="2"><div id="info" style="color: green;"></div></td> 
     </tr> 
    </table> 
    <a href="/AjaxWithSpringMVC2Annotation/showUsers.htm">Show All 
     Users</a> 
</body> 
</html> 
+0

Вы говорите, что 'предупреждение ('имя ');' не работает, но делает 'предупреждение (' образование'); работа вызова'? Выполняется ли запрос AJAX? Есть ли ошибки в консоли разработчика? Значение 'name' имеет значение после' $ ('name'). Val() ', или есть ли ошибка в этой строке? – ajp15243

+0

Отсутствует ошибка в консоли, никакой запрос или предупреждение ajax («образование») не работает. Всякий раз, когда вызывается метод jquery, приложение не работает. После этого метода jquery $ ('name'). Val() ничего не работает. Я думаю, что jquery не загружен должным образом. Я использую этот скрипт для загрузки jquery. user2724215

+0

Попробуйте перейти в '/AjaxWithSpringMVC2Annotation/js/jquery.js' в своем браузере, чтобы узнать, сценарий jQuery или нет. Он работает, если вы видите текстовое содержимое файла сценария в окне просмотра браузера. – ajp15243

ответ

0

Вы можете добавить обработчик ресурсов для пути JS/ **. См. 17.15.6 Configuring Serving of Resources.

@Configuration 
@EnableWebMvc 
public class SpringConfiguration extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/js/**").addResourceLocations("/js/"); 
    } 

} 

или в XML:

<mvc:resources mapping="/js/**" location="/js/"/> 
+0

Я добавил класс, но он не работает. Мне нужно создать объект для этого класса? Или Весна позаботится? – user2724215

+0

Этот класс является частью вашего контекста приложения. Если вы не используете конфигурацию Java, вы должны сделать это способом XML (я думаю, что это ). См. [17.15.6 Настройка обслуживания ресурсов] (http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/mvc.html#mvc-config-static-resources). –

+0

Я пробовал ниже, но он не работает. У меня есть папка js в папке WebContent. Мне нужно изменить путь здесь. user2724215

Смежные вопросы