【发布时间】:2018-10-05 16:32:37
【问题描述】:
是否可以打印由 index.jsp 中的 ajax 带来的 form.jsp 中的 servlet 给出的参数(使用 jstl)?
例如,
index.jsp
<div class='show'>
<div class='show-content'></div>
</div>
${name}
form.jsp
<form action='servlet'>
${name}
//inputs and a button
</form>
servlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String s = "Jean";
request.setAttribute("name", s);
this.getServletContext().getRequestDispatcher("index.jsp").forward(request, response);
}
script.js
function openContentFrom(tag, path){
var xhr = new XMLHttpRequest();
xhr.open("POST", path, true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4){
if (xhr.status === 200){
var txt = xhr.responseText;
var trueTxt = txt.substr(txt.indexOf("<" + tag + ">") + 6, txt.indexOf("</" + tag + ">"));
document.getElementsByClassName("show-content")["0"].innerHTML = trueTxt;
}
else{
console.log("Error : " + xhr.status);
}
}
};
xhr.send(this);
}
openContentFrom("body", "form.jsp");
所以在这里,当使用 ajax 调用时,script.js 会将 form.jsp 的内容带入 index.jsp 的 show-content 中,如果 servlet 已经执行,它将在 form.jsp 和 index 中打印 Jean .jsp.
目前,使用 get 和 post 是不可能的(当然它只是在 index.jsp 上打印 Jean),我想知道是不是这样,因为我搜索过但还没有找到。
我猜 servlet 中的请求内容已发回 index.jsp,所以我可以将其发回 form.jsp 吗?
谢谢!
【问题讨论】:
-
这有点令人困惑。请尝试解释您想要实现的目标。为什么不简单地从 servlet 调用中将名称作为 JSON 发送?
-
我会看看我能做什么。它会在整个页面中保留在内存中吗?