2016-12-02 4 views
0

Я хочу запустить Ajax и showResults. Я создал простые 2 страницы JSP, 1 CONTROLLER и 1 DOMAIN.Я использую netbeans. Я не могу добавить пользователей и посмотреть список всех пользователей.spring mvc Ajax

AddUser. JSP

<script type="text/javascript"> 
     src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" > 
       function doAjaxPost() { 
        var name = $('#name').val(); 
        var education = $('#education').val(); 
        $.ajax({ 
         type: "POST", 
         url: "url", 
         data: "name=" + name + "&education=" + education, 
         success: function (response) { 
          $('#info').jsp(response); 
          $('#name').val(''); 
          $('#education').val(''); 
         }, 
         error: function (e) { 
          alert('Error: ' + e); 
         } 
        }); 
       } 
    </script> 
</head> 
<body> 
    <h1>Add Users using Ajax ........</h1> 
    <c:url var="user" value="/ShowUsers"/> 
    <form:form method="POST" modelAttribute="user" action="${user}"> 
     <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="/ShowUsers">Show All Users</a> 
    </form:form>` 

ShowUsers.jsp

<table> 
     <tr> 
      <td>Name</td> 
      <td>${user.name}</td> 
     </tr> 
     <tr> 
      <td></td> 
      <td>${user.education}</td> 
     </tr> 

    </table> 

web.xml

<servlet> 
    <servlet-name>UserListController</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>UserListController</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

UserListController-servlet.xml

<context:component-scan base-package="com.tutorialspoints" /> 
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

User.java

public class User { 

private String name; 
private String education; 


public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getEducation() { 
    return education; 
} 

public void setEducation(String education) { 
    this.education = education; 
} 

UserListController.xml

@Controller 
public class UserListController { 

private final List<User> userList = new ArrayList<User>(); 

@RequestMapping(value = "/", method = RequestMethod.GET) 
public String showForm(Model m) { 
    m.addAttribute("user", new User()); 
    return "AddUser"; 
} 

@RequestMapping(value = "/AddUser", method = RequestMethod.POST) 
public @ResponseBody 
String addUser(@ModelAttribute(value = "user") User user, BindingResult result) { 
    String returnText; 
    if (!result.hasErrors()) { 
     userList.add(user); 
     returnText = "User has been added to the list. Total number of users are " + userList.size(); 
    } else { 
     returnText = "Sorry, an error has occur. User has not been added to list."; 
    } 
    return returnText; 
} 

@RequestMapping(value = "/ShowUsers", method = RequestMethod.POST) 
public String showUsers(@ModelAttribute User user, ModelMap model) { 
    model.addAttribute("name", user.getName()); 
    model.addAttribute("education", user.getEducation()); 
    return "ShowUsers"; 
} 
} 

ShowUsers.jsp

<body> 
    <table> 
     <tr> 
      <td>Name</td> 
      <td>${user.name}</td> 
     </tr> 
     <tr> 
      <td></td> 
      <td>${user.education}</td> 
     </tr> 

    </table> 
</body> 
+0

Что ваш вопрос? – Janar

+0

@Janar Я хочу запустить Ajax, который обновляет размер списка пользователей, например 1,2,3 и т. Д., Когда я нажимаю «Добавить пользователей». и когда я нажимаю ShowUsers (контроллер), то показ страницы пользователя показывает все имя пользователя и образование. – lavi

ответ

0
  • Pass ваши данные как простой JSON data: {'name': name, 'education': education}.
  • Измените запрос Ajax, как показано ниже
  • Вы были перечислив их в парах запроса строкового формате, который является неправильным "name=" + name + "&education=" + education
  • Исправьте свой адрес, что вы передаете на сервер. Он должен заканчиваться xyzabc/AddUser

    $.ajax({ type: "POST", url: YOUR_ACTUAL_SERVER_URL, data: {'name': name, 'education', education}, success: function (response) { $('#info').jsp(response); $('#name').val(''); $('#education').val(''); }, error: function (e) { alert('Error: ' + e); } });

+0

Solider. Он не работает. Когда я использую/ShowUser в url :. Он не показывает страницу, и Ajax также не обновляется, когда я нажимаю кнопку «Добавить пользователя». – lavi

+0

Хорошо, первым делом - можете ли вы добавить пользователя с помощью модульного теста/почтальона? Это означает, что ваш URL-адрес работает вообще –