2013-02-20 2 views
1

У меня есть контроллер, как следуетЗапрос, отправленный клиентом, был синтаксически неправильным?

@Controller 
public class SettingsController { 
    @RequestMapping(value="/editname",method=RequestMethod.POST) 
    public void editName(@RequestParam(value="firstname") String firstname, 
         @RequestParam(value="lastname") String lastname) { 
     final Object principal = 
     SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 
     try { 
     jdbcPersonRepository.updateName(principal.toString(), firstname, lastname); 
     } catch (SignInNotFoundException e) { 
     } 
    } 
} 

и у меня есть форма AJAX Submit.

$(function() { 
    //twitter bootstrap script 
    $("button#submit").click(function(){ 
    var $form = $(this).closest("form"); 
    var type = $form.attr('method'); 
    $.ajax({ 
     type: $form.attr('method'), 
     url: $form.attr('action'), 
     data: $form.serialize(), 
     dataType : "json", 
     success: function(msg){ 
       $("#thanks").html(msg) 
       $("#form-content").modal('hide');  
     }, 
     error: function(){ 
      //alert("failure"); 
     } 
     }); 
}); 
}); 

и мой твиттер самозагрузки модель, которая имеет форму, которая приводит в действие Ajax заключается в следующем

<!-- Name Edit div --> 
<div id="form-content" class="modal hide fade in" tabindex="-1"> 
    <form name="edit-form" action="<c:url value="/editname" />" method="post"> 
    <div class="modal-header"> 
     <h4>Edit Name</h4> 
    </div> 
    <div class="modal-body"> 
    <div class="control-group"> 
     <div class="controls"> 
      <ul class="nav nav-list"> 
      <li class="nav-header">First Name</li> 
      <li><input type="text" placeholder="First Name" name="firstName" id="firstName" class="input-xlarge help-inline"></li> 
      <li class="nav-header">Last Name</li> 
      <li><input type="text" placeholder="Last Name" name="lastName" id="lastName" class="input-xlarge help-inline"></li> 
     </ul> 
     </div> 
     </div> 
    </div> 
    <div class="modal-footer"> 
     <button id="submit" class="btn btn-success">Update</button> 
     <button class="btn" data-dismiss="modal" >Close</button> 
    </div> 
    </form> 
</div> 

ли есть какие-либо кто-нибудь подсказку относительно этой ошибки. ?

ответ

4

В объявлении метода аннотации @RequestMapping дают имена параметров как firstname и lastname. В форме HTML они равны firstName и lastName.

Имена параметров запроса чувствительны к регистру ... ergo, они не совпадают, а Spring сообщает, что это недопустимый запрос, поскольку отсутствуют обязательные параметры.

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