【问题标题】:Get HTML element using JSP使用 JSP 获取 HTML 元素
【发布时间】:2016-08-09 02:51:55
【问题描述】:

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

我用谷歌搜索了很多,但到处有人将 servlet 的结果转发到 JSP 页面并使用“out”对象创建一个新的 HTML 页面。

我需要使用与我的 HTML 页面相同的文本区域来更新结果。请帮助我实现这一目标。

提前致谢。

【问题讨论】:

标签: html jsp servlets jakarta-ee web-applications


【解决方案1】:

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

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

这可能看起来像:

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

客户端渲染 相反,您可以使用 jQuery 发出 AJAX 发布请求(有一些插件可以帮助解决此问题)。在这种情况下,您的 servlet 不会转发到用于 HTML 渲染的 JSP - 它会直接返回一个 JSON 对象,如 {"textareaContent": ...} ,并且您将在 AJAX 回调中处理该客户端。在这种情况下,您在 Javascript(不是 JSP)中直接访问浏览器 DOM 中的 textarea。

【讨论】:

  • 我更喜欢第一种方法。但是我们在 JSP 中没有类似的东西,getElelmentById 在当前页面上并更新它的内容。
  • 没有。如果您在客户端更新页面内容,getElementById 将适用。当您在 JSP 中渲染服务器端时,您正在渲染全新的 HTML DOM 元素(通常是整个页面),而不是更新现有的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多