Jquery getJSON 不适用于 Spring MVC

发布于 2024-11-30 09:09:59 字数 1723 浏览 4 评论 0原文

以下代码无法将请求提交到服务器,我无法弄清楚为什么。

这是我的jsp页面的一部分

 $(document).ready(function() {
    $('#firstName').change(function() {
        if(('#firstName').val().length >= 2){
                $.getJSON(
                   "getPSPersons.html", 
                   { firstName: $('#firstName').val(), lastName: $('#lastName').val()},
                   function(data) {
                     buildTable(data);
                   }
                );
         }
     });
  });
   -------------------------------
 <form:form name="addperson" method="GET">
      <label for="firstName">First Name</label> &nbsp;
      <input type="text" name="firstName" id="firstName" size="15"/>  &nbsp; &nbsp;
      <label for="lastName">Last Name</label> &nbsp;
      <input type="text" name="lastName" id="lastName" size="15"/>
  </form:form>

,Spring控制器类功能

   @RequestMapping(value="getPSPersons.html", method = RequestMethod.GET)
   public @ResponseBody List<Person> getPersonsWithNames(
         @RequestParam("firstName") String firstName, @RequestParam("lastName") String lastName) 
   {
       List<Person> personList = new ArrayList<Person>();
          if(firstName.length()>=2 || lastName.length() >=2)
    {
                 personList = personService.getPersonsWithName(firstName, lastName);
    }
          return personList;
    }

要求是,当用户在“名字”输入框中输入多个字符时,应向服务器提交一个AJAx请求以获取名字以这些字母开头的所有人员...但是这里的 get 请求永远不会调用这个函数..我很确定 JQuery 请求端出了问题,但我找不到它是什么..

-----更新---------

发现错误..在第 3 行,它应该是 if($('#firstName').val().length >= 2){ 开头的 $ 丢失了

Following code is not able to submit the request to server and I am unable to figure out why.

here is part of my jsp page

 $(document).ready(function() {
    $('#firstName').change(function() {
        if(('#firstName').val().length >= 2){
                $.getJSON(
                   "getPSPersons.html", 
                   { firstName: $('#firstName').val(), lastName: $('#lastName').val()},
                   function(data) {
                     buildTable(data);
                   }
                );
         }
     });
  });
   -------------------------------
 <form:form name="addperson" method="GET">
      <label for="firstName">First Name</label>  
      <input type="text" name="firstName" id="firstName" size="15"/>     
      <label for="lastName">Last Name</label>  
      <input type="text" name="lastName" id="lastName" size="15"/>
  </form:form>

And the Spring controller class function

   @RequestMapping(value="getPSPersons.html", method = RequestMethod.GET)
   public @ResponseBody List<Person> getPersonsWithNames(
         @RequestParam("firstName") String firstName, @RequestParam("lastName") String lastName) 
   {
       List<Person> personList = new ArrayList<Person>();
          if(firstName.length()>=2 || lastName.length() >=2)
    {
                 personList = personService.getPersonsWithName(firstName, lastName);
    }
          return personList;
    }

requirement is that when the user enter more than one character in "firstname" input box, an AJAx request should be submitted to the server to get all persons whose firstname starts with those letters...but here the get request never calls this functions.. I am pretty sture something's wrong on JQuery request side but I can't find what it is..

-----update---------

found the error.. on line 3 it should have been
if($('#firstName').val().length >= 2){
that $ at the beginning was missing

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

救赎№ 2024-12-07 09:09:59

如果您愿意,与其重新发明轮子,为什么不使用预先存在的自动建议小部件 - 有相当多的小部件是用 JQuery 编写的。我就是喜欢这个: http://code.drewwilson.com/entry/autosuggest-jquery -插件 - 尝试一下。

If you'd like, rather than re-inventing the wheel, why don't you use a pre-existing autosuggest widget - there are quite a few written in JQuery. I just love this one: http://code.drewwilson.com/entry/autosuggest-jquery-plugin - give it a try.

热情消退 2024-12-07 09:09:59

我发现一个js错误。

('#firstName').val().length

一定是

$('#firstName').val().length

,或者

$(this).val().length

你丢失了“$”,修复了它,我发现请求已发送。

i find a js error.

('#firstName').val().length

it must be

$('#firstName').val().length

or

$(this).val().length

you lost the "$",fixed it,i found request was sended.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文