我正在使用struts 1.3.8。在 JSP 中,我有一些搜索工具。一旦用户按下搜索按钮,结果将以记录的形式出现。
如何在搜索按钮下的同一搜索页面中显示结果记录?请尽快回复.. 提前致谢
,
Laxman Chowdary
问问题
2285 次
2 回答
2
你有两个选择:
- 让表单自己提交,并生成具有相同搜索表单的页面,预先填写用户提交的内容,以及表单之后的搜索结果。这是典型的“Web 1.0”方式,Struts 表单域非常适合这项任务。
- 在提交表单时使用 JavaScript 向服务器发送 AJAX 请求,并使服务器生成部分页面,仅包含搜索结果。在 AJAX 响应处理程序中,将搜索结果插入到页面的 DOM 树中。服务器也可以回答原始搜索结果(即非 HTML 格式),例如使用 JSON,然后 JavaScript 响应处理程序将遍历结果并在 DOM 中动态创建适当的 HTML 元素。
编辑:
详细说明第一种方法:有两个操作(showSearchForm
和executeSearch
)都使用相同的 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 回答