2016-04-17 65 views
0

我是Java EE的新手。在我的应用程序中,我有一个包含文本区域的HTML页面,其中包含一些信息。 我也有一个用户的表单。一旦他提交了表单,我就使用一个servlet来处理这些信息。 最后,我需要将结果从servlet转发到相同的HTML页面,并在现有的textarea中更新它。 我已经完成了HTML页面的创建,将表单提交给了servlet。 我现在停留在如何访问HTML页面中的textarea来更新我的结果。使用JSP获取HTML元素

我搜索了很多东西,但到处都是人们将servlet的结果转发到JSP页面,并使用“out”对象创建新的HTML页面。

我需要使用我的HTML页面的相同textarea来更新结果。请帮助我实现这一点。

在此先感谢。

+0

这对于开始并掌握最终尝试实现的基本概念有帮助吗? http://stackoverflow.com/q/4112686 – BalusC

回答

0

有两种方法可以做到这一点。

服务器端渲染。您可以使用正常的表单提交重新绘制整个页面。在这种情况下,您可以将一些东西放在servlet中的request范围内,然后在绘制textarea时在JSP中访问它。请注意,您没有访问JSP中的HTML textarea - JSP运行服务器端代码来生成HTML标记,但是您不直接访问浏览器DOM。

这可能是这样的:

  • 的servlet:request.setAttribute("textareaContent", varWithTextareaContent)
  • JSP:<textarea>${textareaContent}</textarea>

客户端呈现相反,你可以做的jQuery的AJAX POST请求(有一些插件来帮助这一点)。在这种情况下,您的servlet不会转发到JSP用于HTML呈现 - 它将直接返回像{"textareaContent": ...}这样的JSON对象,并且您将在AJAX回调中处理该客户端。在这种情况下,您将直接访问浏览器DOM中的textarea,使用Javascript(而不是JSP)。

+0

我更喜欢第一种方法。但是,我们没有在JSP中拥有什么,比如当前页面上的getElelmentById并更新它的内容。 – user4582135

+0

如果您正在更新页面内容客户端,则会应用'getElementById'。当您在JSP中渲染服务器端时,您正在渲染全新的HTML DOM元素(通常是整个页面),而不是更新现有的元素。 – wrschneider