1

我正在使用struts 1.3.8。在 JSP 中,我有一些搜索工具。一旦用户按下搜索按钮,结果将以记录的形式出现。
如何在搜索按钮下的同一搜索页面中显示结果记录?请尽快回复.. 提前致谢

Laxman Chowdary

4

2 回答 2

2

你有两个选择:

  1. 让表单自己提交,并生成具有相同搜索表单的页面,预​​先填写用户提交的内容,以及表单之后的搜索结果。这是典型的“Web 1.0”方式,Struts 表单域非常适合这项任务。
  2. 在提交表单时使用 JavaScript 向服务器发送 AJAX 请求,并使服务器生成部分页面,仅包含搜索结果。在 AJAX 响应处理程序中,将搜索结果插入到页面的 DOM 树中。服务器也可以回答原始搜索结果(即非 HTML 格式),例如使用 JSON,然后 JavaScript 响应处理程序将遍历结果并在 DOM 中动态创建适当的 HTML 元素。

编辑:

详细说明第一种方法:有两个操作(showSearchFormexecuteSearch)都使用相同的 ActionForm (包含搜索表单字段)。

第一个操作只是用默认搜索值填充表单,并分派给显示表单和结果的 JSP。由于没有要显示的结果,它只会显示搜索表单。

第二个动作验证表单,执行搜索,将搜索结果存储到请求属性中或直接存储到 ActionForm 中,然后分派到与第一个动作相同的 JSP。这一次,JSP 将找到要显示的结果,并因此显示它们。

于 2012-04-30T13:20:10.940 回答
0

使用阿贾克斯。

如果我用 jQuery 来做

jQuery.ajax(
    url: getSomething, 
    datatype: "JSON",
    success:function(data){
     //parse and call add new records in the table
 });

或者

再次使用 Ajax,在 struts 中说您将检索到的记录放在会话中。

然后是另一个具有逻辑或读取会话属性并创建 html 表的 jsp,只需返回该页面。由于数据已经在会话中,您的 jsp 将被填充。因此,您的 ajax 调用将如下所示:

jQuery.ajax(
        url: getSomething, 
        success:function(data){
         jQuery('#IdOfElementWhereTheHTMLTableNeedsToBeAdded').append(data);
     });
于 2012-04-30T13:23:17.490 回答