【发布时间】:2016-01-08 09:22:19
【问题描述】:
我需要将 html 代码传递到 jsp 页面,因此我从同一页面发出 ajax 请求来更新 div。
servlet 代码:
String greetings = "<h1>Hello from servlet</h1>";
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(greetings);
jsp:
<div id="ajaxGetUserServletResponse"></div>
我进入页面:<h1>Hello from servlet</h1> 而不是 h1 标记的 html 表示。如何修复它以保留jsp中的html格式?
编辑:
不建议从服务器发送 HTML 响应。您也可以将<h1> 标记留在JSP 中。但是,如果您坚持这样做,应该为您设置它
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Hello from servlet</h1>");
【问题讨论】:
-
你为什么要把你的布局放在你的java代码中?这就是 jsp 文件的用途。
-
@Stultuske 好吧,我知道,但在某些情况下这样做很有用
-
你问错问题了。将其重构为 “我在 JavaScript 字符串变量中有一些 HTML 代码,就像这样 [...],我想将它添加到文档中的以下 HTML 元素 [...],我目前正在尝试这样做 [...],但它显示为文本而不是 HTML。” 填写空白并重新标记为 JavaScript/HTML。这一切都与 Java/JSP/Servlets 完全无关。
-
@BalusC 实际上我的 HTML 代码不在 JavaScript 字符串变量中,而是在 servlet 中。 javascript 只是向 servlet 发出 ajax 请求。
-
你不了解我,也不了解 webdev 基础知识。发出 ajax 请求的 JS 代码最终会在一个字符串变量中获取该 HTML,然后将其放入该 div 中。正是这一步做错了。将 HTML 字符串放在硬编码的 JS 变量中而不是从 ajax 响应中获取并没有什么不同。再次,按照上述方式重新构建您的问题,并用您使用的代码填写空白。