Java 使用Servlet按下submit后,将请求转发到相同的
我有一个带有两个“的”的jsp页面,它根据使用特定的下拉选择值进行的选择来显示 打开或刷新页面时,默认情况下会显示其中一个div。我需要在第二个div上显示一些结果,默认情况下不是这样。谁能推荐一下吗 下面是到目前为止我的代码 具有下拉列表的窗体 ) 任何人都可以指导,或建议我如何改变这一行,并让自己重定向到相同的分区 我想我需要在这里做些改变 Util.forwardreq,resp,this,/log/testPage.jsp 任何帮助都会很好Java 使用Servlet按下submit后,将请求转发到相同的,java,javascript,html,jsp,servlets,Java,Javascript,Html,Jsp,Servlets,我有一个带有两个“的”的jsp页面,它根据使用特定的下拉选择值进行的选择来显示 打开或刷新页面时,默认情况下会显示其中一个div。我需要在第二个div上显示一些结果,默认情况下不是这样。谁能推荐一下吗 下面是到目前为止我的代码 具有下拉列表的窗体 ) 任何人都可以指导,或建议我如何改变这一行,并让自己重定向到相同的分区 我想我需要在这里做些改变 Util.forwardreq,resp,this,/log/testPage.jsp 任何帮助都会很好 感谢使用常规HTML表单提交,您不能这样做。您
感谢使用常规HTML表单提交,您不能这样做。您需要使用AJAX进行提交,然后使用javascript将响应写入DIV。它与任何请求转发无关。您只需要返回一些HTML的servlet,而不是转发回JSP。看看jQuery中的$.ajax函数
$.ajax({
type : "POST",
url : "/log/",
data : {
//your parameters
},
success : function(data)
{
$("#firstDivision").html(data);
}
});
<div id='firstDivision' style="display: block">
<h4>By select: <span id="SelectName"> </span></h4>
//my logic
</div>
<div id='secondDivision' style="display: none">
<form id='form2' method=post>
<input type="hidden" name="pick" value="secondDiv">
<h4>Enter value to get the information below:</h4>
<select id='identity2' name="info">
<option value="val1">choice1</option>
<option value="val2">choice2</option>
</select>
<input type="text" name="dynamicText">
<input type="submit">
</form>
//display result logic
</div>
if ("secondDivision".equals(pick)) {
InformationDAOImpl ad = new InformationDAOImpl();
PResponse pr = null;
String selection = req.getParameter("info");
String inputText = req.getParameter("dynamicText");
if (selection.equals("val1")) {
String sql = "Select name, char from table2 where text='" + inputText + "'";
pr = ad.getProdData(sql);
} else if (selection.equals("val2")) {
String sql = "Select name, char from table2 where value2='" + inputText + "'";
pr = ad.getResult(sql);
}
requset.setAttribute("data", pr);
Util.forward(req, resp, this, "/log/testPage.jsp
$.ajax({
type : "POST",
url : "/log/",
data : {
//your parameters
},
success : function(data)
{
$("#firstDivision").html(data);
}
});