如何在同一提交页面中显示JSP页面的结果?

如何在同一提交页面中显示JSP页面的结果?,jsp,struts,Jsp,Struts,我使用的是struts 1.3.8。在JSP中,我有一些搜索功能。一旦用户按下搜索按钮,结果将以记录的形式出现。 如何在搜索按钮下的同一搜索页面中显示结果记录?? 请尽快回复。。 提前感谢 问候, Laxman Chowdary您有两个选择: 让表单自行提交,并使用相同的搜索表单生成页面,预先填写用户提交的内容,并在表单后显示搜索结果。这是典型的“Web1.0”方式,Struts表单字段非常适合此任务 提交表单时,使用JavaScript向服务器发送AJAX请求,并使服务器生成仅包含搜索结果的部

我使用的是struts 1.3.8。在JSP中,我有一些搜索功能。一旦用户按下搜索按钮,结果将以记录的形式出现。
如何在搜索按钮下的同一搜索页面中显示结果记录?? 请尽快回复。。 提前感谢
问候,
Laxman Chowdary

您有两个选择:

  • 让表单自行提交,并使用相同的搜索表单生成页面,预先填写用户提交的内容,并在表单后显示搜索结果。这是典型的“Web1.0”方式,Struts表单字段非常适合此任务
  • 提交表单时,使用JavaScript向服务器发送AJAX请求,并使服务器生成仅包含搜索结果的部分页面。在AJAX响应处理程序中,将搜索结果插入页面的DOM树中。服务器还可以使用原始搜索结果(即非HTML格式)进行响应,例如使用JSON,然后JavaScript响应处理程序将迭代搜索结果,并在DOM中动态创建适当的HTML元素
  • 编辑:

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

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

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

    使用Ajax

    如果我用jQuery来做的话

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

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

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

    jQuery.ajax(
            url: getSomething, 
            success:function(data){
             jQuery('#IdOfElementWhereTheHTMLTableNeedsToBeAdded').append(data);
         });
    

    您好,Nizet,您能详细介绍一下在同一页面上显示结果的第一种方法吗?@JBNizet很好的非ajax方式+1@JBNizet,为什么我们不简单地使用单操作和两个分派器方法呢。这两种方法产生相同的JSP?当然,您可以使用一个DipatchAction子类来实现这两个操作(这就是您的意思吗?)。但是有两个操作是合乎逻辑的,因为一个需要验证,另一个不需要验证,URL应该不同。Struts提供诸如logic、html和bean之类的标记。第一次使用一个属性为null。当我们发送请求时,结果将与该属性一起出现,转发页面是相同的JSP页面。此时为true,则属性不为null。所以标记的主体将执行并显示我们期望的结果。。我只知道AJAX。你能告诉我其他可能的解决方案吗???????嗨,拉克斯曼,你可以遵循老式的AJAX,在你的onreadystatechange方法中,你将接收数据,一旦你接收到数据,你就不用说jQuery.append,你会说document.getElementById().appendChild(data),jQuery只是让它很容易开始,它仍然是一个javascript libPrabhat,我的表单有多个表单元素。如何使用AJAX发送所有表单元素?我使用AJAX处理下拉式的东西。首先,为什么在这里使用AJAX?有没有没有没有没有AJAX的简单解决方案?Bcoz如果我使用ajax,表单数据就不能填充到表单Bean中。我们必须明确地这样做。所以,你能告诉我其他可能的解决方案吗????@JB Nizet已经很好地解释了非ajax版本,我认为我没有任何其他补充:)