我有两个jsp页面。第一个带有“Hello World”的短信。带有“Hello JSP”文本消息的第二个JSP页面。现在在我的第三个JSP页面中,我有两个按钮button1和按钮2.有人可以建议一些代码片段我可以用来点击按钮1调用第一个JSP页面,**点击按钮2,它应该调用第二个JSP页面?
单击第一个按钮时,只显示第一个jsp页面值,即Hello World,单击第二个按钮,只显示第二个页面值,即Hello JSP。
请建议实现这一目标的方法。
亲切的问候
答案 0 :(得分:2)
只需将一些设置窗口位置的javascript设置为您要显示为按钮脚本的页面
<input type="button"
value="Button 1"
onclick="window.location.assign('HelloWorld.jsp')">
<input type="button"
value="Button 2"
onclick="window.location.assign('HelloWorldJSP.jsp')">
为JSP页面添加正确的地址。这将导致浏览器从JSP页面的地址重新加载,并且JSP将“填充浏览器”及其内容。
答案 1 :(得分:1)
使用AJAX的JavaScript
<script>
function loadXMLDoc(page)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",page,true);
xmlhttp.send();
}
</script>
按钮代码
<button type=button onclick='loadXMLDoc("page_one.jsp")'>Button 1</button>
<button type=button onclick='loadXMLDoc("page_two.jsp")'>Button 2</button>
并且在体内
<div id="myDiv"></div>
答案 2 :(得分:0)
“调用”JSP页面没有多大意义。您是否尝试根据您点击的按钮提交不同的信息(我想是这样)?如果您提交不同的信息,您希望如何处理结果?
最简单的事情 - 有两种表单可以提交到不同的URL。单击按钮1应将其提交到第一个JSP的URL,单击按钮2应将其提交到第二个JSP的URL。或者这些可以是简单的GET链接。如果三个JSP,a.jsp,button1.jsp和button2.jsp在同一个(并可通过直接web URL访问)目录,a.jsp可以是 -
点击Hello World 单击Hello JSP
button1.jsp和button2.jsp的内容很简单。
请记住,通常,您不应直接提交JSP URL。我是否还建议您花一些时间阅读JSP,servlet和HTTP如何协同工作以及相互结合?
答案 3 :(得分:0)
始终尝试通过servlet转发您的实践,下面是其中一个实现。将两个按钮都设置为提交类型。 使用隐藏文本框存储表单内按钮的单击ID /名称。
$("#button1").click(function() {
var buttonId = $("#buttonId").val('button1');
return true;
});
$("#button2").click(function() {
var buttonId = $("#buttonId").val('button2');
return true;
});
提交表单并在servlet中获取buttonId的值,如下所示,
String clickedButton = request.getParameter("hidden_name");
最后将页面转发到您喜欢的任何内容,
if(clickedButton.equals("button1")){
// do your stuff
}else if(clickedButton.equals("button2")){
// do your stuff
}