2016-12-19 3 views
0

index.jspを以下に示します。私は私のJSPページにいくつかのチェックボックスを持っています。私は自分のコントローラに値を送信し、送信ボタンをクリックした後にその同じページに値を表示したいと思います。私は私のコントローラにチェックボックスのデータを送信したい。どのようにajaxで春のコントローラのチェックボックスの値を送ることができますか?

画像があります。 After click the submit button,this is the ajax response in my alert

応答は次のとおりです。

{"country":"United State","favfruit":null,"firstName":"r4tr54","lastName":"tytu","gender":"Female","email":"ytuyui","fruit":[]} 

これは私のindex.jspです:

@RequestMapping(method = RequestMethod.POST) 
public @ResponseBody 
Employee add(HttpServletRequest request, HttpServletResponse response , ModelMap model) 
    throws Exception { 
    Employee employee = new Employee(); 
    String firstName = request.getParameter("firstName"); 
    String lastName = request.getParameter("lastName"); 
    String email = request.getParameter("email"); 
    String gender = request.getParameter("gender"); 
    String country = request.getParameter("country"); 
    String[] favfruit = (String[]) request.getAttribute("selector[]"); 
    employee.setEmail(email); 
    employee.setFirstName(firstName); 
    employee.setLastName(lastName); 
    employee.setGender(gender); 
    employee.setCountry(country); 
    employee.setFavfruit(favfruit); 

    return employee; 
} 

と私のモデルは次のとおりです:ここで

<%@ 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> 
<script type="text/javascript" language="javascript" src="http://www.technicalkeeda.com/js/javascripts/plugin/jquery.js"></script> 
<script type="text/javascript" src="http://www.technicalkeeda.com/js/javascripts/plugin/json2.js"></script> 

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Spring Jquery Ajax Demo</title> 
<style> 
Table.GridOne { 
    padding: 3px; 
    margin: 0; 
    background: lightyellow; 
    border-collapse: collapse; 
    width:35%; 
} 
Table.GridOne Td { 
    padding:2px; 
    border: 1px solid #ff9900; 
    border-collapse: collapse; 
} 
</style> 
<script type="text/javascript"> 

function madeAjaxCall(){ 

    var country = $('#country').val(); 
    var gender = $('input:radio[name=sex]:checked').val(); 
    var checkboxValues = []; 
    $('input.removeLater:checked').map(function() { 
       checkboxValues.push($(this).val()); 
    }); 
    alert(checkboxValues); 
    var fruitstring = checkboxValues.toString(); 

    $.ajax({ 
     type: "post", 
     url: "http://localhost:8080/SpringAjaxQuery/employee", 
     cache: false,  

     data:'firstName=' + $("#firstName").val() 
      + "&lastName=" + $("#lastName").val() 
      + "&email=" + $("#email").val() 
      + "&gender=" + gender 
      + "&country=" + country 
      + "&fruit=" + checkboxValues, 

     success: function(response){ 
      $('#result').html(""); 
      var obj = JSON.parse(response); 
      alert(response); 
      $('#result').html(
        "First Name:- " + obj.firstName 
       +"</br>Last Name:- " + obj.lastName 
       +"</br>Email:- " + obj.email 
       +"</br>Gender:- " + obj.gender 
       +"</br>Country:- " + obj.country 
       +"</br>Fruit:-" + obj.fruit); 
      document.forms["employeeForm"].reset(); 
     }, 

     error: function(){      
      alert('Error while request..'); 
     } 
    }); 
} 
</script> 
</head> 
<body class="body"> 
    <form name="employeeForm" method="post">  
     <table cellpadding="0" cellspacing="0" border="1" class="GridOne"> 
      <tr> 
       <td>First Name</td> 
       <td><input type="text" name="firstName" id="firstName" value="" onfocus="clearThis(this)"></td> 
      </tr> 
      <tr> 
       <td>Last Name</td> 
       <td><input type="text" name="lastName" id="lastName" value=""></td> 
      </tr> 
      <tr> 
       <td>Email</td> 
       <td><input type="text" name="email" id="email" value=""></td> 
      </tr> 
      <tr> 
       <td>Country</td> 
       <td><select id="country"> 
         <option value="None">-- Select --</option> 
         <option value="China">China</option> 
         <option value="United State">United State</option> 
         <option value="Malaysia">Malaysia</option> 
         <option value="Bangladesh">Bangladesh</option> 
         </select></td> 
      </tr> 
      <tr> 
       <td id="genderradio">Gender</td> 
       <td>  <input type="radio" name="sex" value="Male">Male</input> 
          <input type="radio" name="sex" value="Female">Female</input> 
          <input type="radio" name="sex" value="Unknown">Unknown</input> 
                          </td> 
      </tr> 
      <tr> 
       <td>Favourite Fruit</td> 
       <td><input name="selector[]" id="ad_Checkbox1" class="removeLater" type="checkbox" value="Apple" />Apple 
        <input name="selector[]" id="ad_Checkbox2" class="removeLater" type="checkbox" value="Lichi" />Lichi 
        <input name="selector[]" id="ad_Checkbox3" class="removeLater" type="checkbox" value="Mango" />Mango 
        <input name="selector[]" id="ad_Checkbox4" class="removeLater" type="checkbox" value="Banana" />Banana</td> 
      </tr> 
      <tr> 
       <td colspan="2" align="center"><input type="button" value="Ajax Submit" onclick="madeAjaxCall();"></td> 
      </tr> 
     </table> 
    </form> 
    <h1>Spring Framework Jquery Ajax</h1> 
    <div id="result"></div> 
</body> 
</html> 

は私のコントローラがある

package com.pran.pal.simple.ajax.jquery.model; 
import java.util.ArrayList; 
import java.util.List; 
public class Employee { 

    private String firstName; 
    private String lastName; 
    private String email; 
    private String gender; 
    private String country; 
    List <String> fruit = new ArrayList<String>(); 
    String[] favfruit; 

    public String[] getFavfruit() { 
     return favfruit; 
    } 

    public void setFavfruit(String[] favfruit) { 
      this.favfruit = favfruit;   
    } 

    public List<String> getFruit() { 
     return fruit; 
    } 

    public void setFruit(List<String> fruit) { 
     this.fruit = fruit; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public String getGender() { 
     return gender; 
    } 

    public void setGender(String gender) { 
     this.gender = gender; 
    } 

    public String getCountry() { 
     return country; 
    } 

    public void setCountry(String country) { 
     this.country = country; 
    } 

} 
+0

あなたのAjaxの成功コールバックでrequest.getParameter("fruit").split(",");

に属性request.getAttribute("selector[]") chanageこれを受信しようとしているあなたは確認していました、あなたの要求はすべての送信チェックボックスの値は?また、 'favFruit'の' request.getAttribute'はなぜですか、それ以外は 'request.getParameter'ですか? –

答えて

1

あなたは

data:'firstName=' + $("#firstName").val() 
     + "&lastName=" + $("#lastName").val() 
     + "&email=" + $("#email").val() 
     + "&gender=" + gender 
     + "&country=" + country 
     + "&fruit=" + checkboxValues 

でAJAXを呼び出すしかし

Set Fruit:-" + obj.favfruit); not Fruit:-" + obj.fruit); 
+0

あなたは元気です。それは働きます。ありがとうございました。 –

関連する問題