【问题标题】:jsp calls 2 servlets through jqueryjsp通过jquery调用2个servlet
【发布时间】:2012-05-16 05:20:04
【问题描述】:

背景: 我有 - Search.jsp、SearchResult.java 和 SearchDetails.java 文件。我需要在表单提交时通过 jquery/(ajax?) 将搜索值发布到 SearchResult servlet,并将结果显示在 1 列表中。 之后,该用户可以单击任何行以在同一页面中查看该结果的详细信息。在这种情况下,我的计划是点击特定行的点击事件,我必须通过 jquery-ajax 调用 SearchDetails servlet。

问题: 我现在可以在动态填充的表格中获取搜索结果,并且在每一行中,我都在 /link 标记中填充结果。 1.请告诉我如何将结果填充到表格中,以便我可以进行分页等。 2. 我如何调用 SearchDetails servlet 并使用存储在动态填充的 td 中的隐藏值。

我的经验:我从过去 1 个月开始研究 jsp、servlet、jquery-ajax。但是.net 持续了 7 年。

搜索.jsp:

<script> 
 $(document).ready(function() { 
     $('#btnSearch').click(function() { 
        $mobileNo = document.getElementById("txtMobileNo").value;
        $.post('BE_AccountSearch', {mobileNo:$mobileNo}, 
        function(responseText){ 
              $('#dvSearchResultSub').html(responseText); 
         }); 
     }); 
 }); 
</script> 
<form id="form" method="post"> 
     <input name="txtMobileNo" id="txtMobileNo" autofocus> 
     <input type="button" id="btnSearch" value="Search"/> 
     <div id="dvSearchResultSub"></div> 
</form> 

SearchResult.java (servlet):

out.println("<table>"); 
for (int i = 0; i < memberList.size(); i++){ 
  out.println("<tr>"); out.println("<td>"); 
  out.println("<a id=\"memberList\" href=\"BE_AccountDetails?uln=" + memberList.get(i).getUsername() + "\">"); 
  out.println(memberList.get(i).getUsername());
  out.println("</a>"); 
  out.println("</td>"); 
 out.println("</tr>"); 
} 
out.println("</table>"); 
out.println("</div>"); 
out.flush(); 
out.close(); 

【问题讨论】:

  • Search.jsp: &lt;script&gt; $(document).ready(function() { $('#btnSearch').click(function() { $mobileNo = document.getElementById("txtMobileNo").value; $.post('BE_AccountSearch', {mobileNo:$mobileNo}, function(responseText){ $('#dvSearchResultSub').html(responseText); }); }); }); &lt;/script&gt; &lt;form id="form" method="post"&gt; &lt;input name="txtMobileNo" id="txtMobileNo" autofocus&gt; &lt;input type="button" id="btnSearch" value="Search"/&gt; &lt;div id="dvSearchResultSub"&gt;&lt;/div&gt; &lt;/form&gt;
  • SearchResult.java (servlet): out.println("&lt;table&gt;"); for (int i = 0; i &lt; memberList.size(); i++){ out.println("&lt;tr&gt;"); out.println("&lt;td&gt;"); out.println("&lt;a id=\"memberList\" href=\"BE_AccountDetails?uln=" + memberList.get(i).getUsername() + "\"&gt;"); out.println(memberList.get(i).getUsername()); out.println("&lt;/a&gt;"); out.println("&lt;/td&gt;"); out.println("&lt;/tr&gt;"); } out.println("&lt;/table&gt;"); out.println("&lt;/div&gt;"); out.flush(); out.close();
  • 所以,上面的代码运行良好。但是当我单击结果值时,它直接打开“BE_AccountDetails”页面,因为我使用了链接按钮。我想要做的是 - 通过单击我想用手机号执行第二个 servlet 的链接并获取大约 30/35 个字段的数据(fName、mName、lName 等)并将其显示在此页面上。跨度>
  • 您可以编辑问题。仅将 cmets 用于简短的说明、建议等。

标签: jsp jquery servlets


【解决方案1】:

使用Java MVC(模型视图控制器)将参数从jsp传递到Java并返回给Jsp。你可以得到一些帮助here

要使用 AJAX 在 jsp 上填充表,您可以使用 Datatables。数据表在表上提供了很多功能,例如分页、搜索、排序等。

我希望这会有所帮助。如果您已经开始使用代码,请提供一些代码以及您的问题。

【讨论】:

    【解决方案2】:

    我使用 jqGrid 来完成此类任务。它嵌入了ajax。您所要做的就是将其插入您的页面并创建处理查询的 servlet/控制器。

    从您的代码看起来一切正常。不知道问题出在哪里。尝试在 FireFox 中打开 FireBug 运行它并查看跟踪 - 如果它没有显示动态结果,则应该有错误。

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 2013-08-08
      • 2012-02-02
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多