我需要在jsp页面中显示来自servlet的数据。目前我有这样的想法:
SERVLET:
Object data = text;
request.setAttribute("data", data);
request.getRequestDispatcher("index.jsp").forward(request, response);JSP:
<p>result: ${data}</p>在JSP中有一个简单的文本框和一个send按钮。在我按下发送按钮的那一刻,响应每次都会被覆盖。
我怎么做才能在每次搜索后在新的一行中看到结果呢?我还想看看之前的搜索结果...
非常感谢!
发布于 2012-09-14 18:50:40
你有几个选择:
JSP将当前值发送到服务器,执行搜索并将新结果附加到服务器上,然后将整个字符串发送回Request中的,以便再次显示所有内容。您必须将值包装在<input>标记中,如果您仍然希望在<p>中显示data而不是作为输入字段,则可以使用<input type="hidden">。
JSP:
结果:${data}
Servlet:
Object newData = text;Object oldData = request.getParameter(" oldData ");request.setAttribute("data",oldData+ "“+ newData);request.getRequestDispatcher("index.jsp").forward(request,response);
data的所有值,只需从您的servlet追加到它。JSP必须从会话作用域中输出值,而不是输出请求。在本例中,值存储在唯一连接的String中。最好将data的每个值存储在一个数据结构中,比如List,然后在JSP中遍历它,这样分隔符就会保留在视图中。JSP:
结果:${sessionScope.data}
Servlet:
Object newData =文本;Object oldData = request.getSession().getAttribute("data");request.getSession().setAttribute("data",oldData + "“+ newData); response);
发布于 2012-09-14 18:50:07
1在servlet中.Use一个数组而不是简单的对象
发布于 2012-09-14 18:50:38
您正在将数据放入RequestScope中,您必须将它们添加到SessionScope中才能查看之前的结果。
请参阅此示例:http://viralpatel.net/blogs/jsp-servlet-session-listener-tutorial-example-in-eclipse-tomcat/。
用JSP编写java代码并不是很好的做法,因此您可能希望将逻辑转移到servlet中。但是这个例子描述了你所需要的点。
https://stackoverflow.com/questions/12422861
复制相似问题