我使用的是这样的html表单:
<form action="question" method="get">
其中question是一个java servlet类,它从表单中呈现数据并显示在其他页面上。
我要做的是在html表单下方显示此数据,而不是在其他屏幕上显示。 (有点像我们在stackoverflow.com中询问问题的页面,您输入的问题将在下面显示并显示。)
所以我想做同样的事情。任何人都知道如何做到这一点?
答案 0 :(得分:1)
最简单的方法是使用javascript(客户端)。
以下是如何执行此操作的非常粗略的示例。这将让您了解如何继续。
创建一个html页面,其中包含两个单独的文本区域框。
让第一个文本区域框成为您在文本中键入的源。 为它指定一个id'source_area'。
<textarea id='source_area'>
</textarea>
让第二个文本区域框成为目标。 为它指定一个id'destination_area'。
将此区域设置为“只读”,因为您不希望用户直接在此处键入。
<textarea id='destination_area' readonly>
</textarea>
现在,当用户输入第一个框时,我们需要捕获特定的操作。 对于此示例,我将使用“onKeyUp”来捕获释放键盘键时的事件。
现在当键入源文本框时,键盘上的一个键被释放,它将调用一个javascript函数“transferToNextArea()”被调用。 我们将在
中创建javascript函数“transferToNextArea()”在此处阅读有关javascripts的更多信息。
http://w3schools.com/js/js_events.asp
完整的活动清单。
http://w3schools.com/jsref/dom_obj_event.asp
javascript函数将从“source_area”文本框中提取文本。 然后它会将相同的文本分配到'destination_area'。
function transferToNextArea()
{
//extracting text.
var varSrcText = document.getElementById("source_area").value;
//assigning text to destination.
document.getElementById("destination_area").value=varSrcText
}
完整的HTML(在Google Chrome中测试)
<html>
<body >
Source Box
<textarea id='source_area' onKeyUp="transferToNextArea();">
</textarea>
<br>
Destination Box
<textarea id='destination_area' readonly>
</textarea>
</body>
<script type="text/javascript">
function transferToNextArea()
{
var varSrcText = document.getElementById("source_area").value;
document.getElementById("destination_area").value=varSrcText
}
</script>
</html>
这只是一个非常基本的例子。它不是很有效,但它可以让您了解数据如何移动。 在分配文本之前,您可以使用javascript来操作文本。
Stackoverflow在提取文本后根据html标记格式化文本。这将需要更多的代码和更多的工作。
使用servlet执行上述任务是过度的。 只有在想要对服务器端的数据执行某些操作时,才会使用servlet。
Example
a) store it in a database before displaying it below.
了解“ajax”调用,以便在服务器和客户端之间发送和接收数据。 Ajax将为您提供将数据发送到servlet的方法,而无需刷新整个页面。
答案 1 :(得分:0)
使用表单
提交后将数据发布到某个servlet
处理请求并生成结果数据并将其设置为请求的属性
将请求转发给相同的jsp
检查表格
答案 2 :(得分:0)
让servlet将请求转发到同一个JSP页面,并使用JSTL <c:if>
有条件地显示结果。
request.setAttribute("questions", questions);
request.getRequestDispatcher("/WEB-INF/questions.jsp").forward(request, response);
与
<c:if test="${not empty questions}">
<h2>There are ${fn:length(questions)} questions.</h2>
<c:forEach items="${questions}" var="question">
<div class="question">${question}</div>
</c:forEach>
</c:if>