在JSP中显示当前页面上的表单处理结果

时间:2009-08-04 16:36:08

标签: java jsp servlets

目前我可以将一些表格数据从HTML页面发送到Servlet,处理它,并通过转发/重定向到displayresults.jsp页面返回结果;但是,我想知道是否有办法以这种方式处理表单提交,然后将结果返回到初始页面?因此,无论我希望返回什么,都会显示在表单下方。

最终的想法是将搜索功能放在首位,然后将搜索结果显示在同一页面的下方。

3 个答案:

答案 0 :(得分:2)

<c:choose>
<c:when test="${empty param.search}">
    <form method="post"><input type="text" name="search" /></form>
</c:when>
<c:otherwise>
    <%-- show search result here. --%>
</c:otherwise>
</c:choose>

答案 1 :(得分:1)

  1. 将结果粘贴到servlet
  2. 中的请求对象中
  3. 将servlet 转发返回到请求页面
  4. 在JSP中添加一些代码以从请求对象中提取结果并显示它们
  5. 有关简单示例http://www.tek-tips.com/viewthread.cfm?qid=1189624&page=11

    的信息,请参阅此处

    如果您的用例意味着您将从其他地方跳回搜索结果,那么您可能希望在会话中维护搜索结果。

答案 2 :(得分:1)

就个人而言,我几乎总是将“收集搜索条件”和“显示结果”放在同一个servlet或JSP文件中。我用这个基本结构写它们:

if request data is present
  collect search criteria from request object
  check for errors
else // i.e. first time in
  fill search criteria with blanks or defaults
end if

display error messages // if any, of course
display search criteria // either what we got from last cycle or defaults

if request data was present
  process request
  display results
end if

我喜欢这种结构,因为在出​​错时,我设置为显示错误数据,让用户修复错误,然后循环回来。成功之后,我会让他调整标准并重新开始。一切都在一个地方,但它的结构,所以它不是一团糟。

当由我决定时,我很少使用servlet:我更喜欢将JSP用于顶层,并将非平凡的非显示代码放在我简单调用的其他类中,但这是一个实现细节。这个原则也适用于servlet和JSP。