目前我可以将一些表格数据从HTML页面发送到Servlet,处理它,并通过转发/重定向到displayresults.jsp页面返回结果;但是,我想知道是否有办法以这种方式处理表单提交,然后将结果返回到初始页面?因此,无论我希望返回什么,都会显示在表单下方。
最终的想法是将搜索功能放在首位,然后将搜索结果显示在同一页面的下方。
答案 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)
是
有关简单示例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。