[英]How to include a jsp inside another jsp using javascript
我有一个按钮注销。 单击注销后,我需要显示另一个页面。 如何使用JavaScript执行此操作? 谁能帮帮我吗?
我的代码:
<s:form name="LogoutAction"
id="LogoutAction" action="logout">
<span class="inlayField2">
<s:a href="logout" cssClass="planTabHeader" id="logoutId"> <img src="../../KY/images/common/header/lock.png" alt="logout" style="border: none;background-color: transparent;" /> Log out</s:a></span>
</s:form>
我尝试了这个:
$('#logoutId').click(function(event) {
$('#logoutdiv').load('ConfirmationPopup.jsp');
});
您可以使用ajax从第二个jsp获取html,然后附加到DOM或元素的innerHTML。
主页面.jsp
<span id=confirmSpan></span>
<script language="Javascript">
function xmlhttpPost(strURL, queryStr) {
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari, opera etc
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}else{
alert("no ajax")
return
}
self.xmlHttpReq.open('POST', strURL, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function() {
if (self.xmlHttpReq.readyState == 4) {
updatepageConfirm(self.xmlHttpReq.responseText);
}
}
self.xmlHttpReq.send(queryStr);
}
function updatepageConfirm(str){
document.getElementById("confirmSpan").innerHTML = str;
}
function logout1(){
xmlhttpPost("confirm.html");//http://sel2in.com/pages/prog/html/ajax/confirm.html", "")
}
</script>
</head>
<body>
<form id="search" action="/search" method="get">
<input type=button onclick=logout1() value=logout>
</form >
带有确认代码的示例页面-> div的任何有效html都可以是Confirm.jsp 。
//这里是todo格式,例如span / pop up / script / css->就像iframe看起来您想显示一个确认-一些UI询问您是否真的要注销?
最好的方法是创建一个ID为“ logoutConfirmSpan”的空跨度,然后在单击注销时执行ajax(异步模式-> false,使其发生内联)获取html标记并将其设置为跨度的innerHTML
html应该是有效的,以使UI出现并真正注销表单。
请参阅用Ajax响应替换div的内部HTML告诉您如何在jQuery中使用ajax
简单样本:
<span id = 'logoutConfirmSpan'> </span> <script> // call ajax, with the response call setHtmlForConfirm function setHtmlForConfirm(req) { document.getElementById('logoutConfirmSpan').innerHTML = req.responseText; } //req.responseText should have the html to show the confirm UI and form to submit yes/ no </script>
您不能在客户端单击中include
JSP,因为它是服务器端技术。 您可以在发送之前在页面中包含所需的HTML,使用CSS隐藏该区域,然后使用JavaScript将其显示为响应鼠标单击。在将页面发送给客户端之前,服务器上已经包含该include
。 你可以有这样的事情:
<div id="confirmPopup" style="display:hidden;">
<%@ include file="ConfirmationPopup.jsp" %>
</div>
<script>
$('#logoutId').click(function(event) {
document.getElementById("confirmPopup").style.display="block";
});
</script>
您可以使用简单的GET
请求来获取辅助.jsp
页面呈现的HTML。 基本上,在Ajax中,使用jQuery,您可以执行以下操作:
$.get({
url: "mysite.com/otherpage.jsp",
data: "some data you want to send, optional",
success: function(data, textStatus, jqXhr)//the response data, the ajax request status and the ajax request object itself {
$('#someDiv').html(data);
}
});
1)在初始页面加载时创建
<div id='someID'></div>
2)在按钮上单击,通过javascript用新的jsp url创建一个iframe
3)加载iframe内容后,在对话框窗口中将其显示为弹出窗口
保持跨度并单击时可以执行的另一种方法: http : //sel2in.com/pages/prog/html/ajax/aPage2.html1
<span id=confirmSpan></span>
<script language="Javascript">
function logout1(){
iconfirmSpan = document.getElementById("confirmSpan")
if (!confirmSpan){
alert("Error no confirmSpan contact support!");
}
confirmSpan.innerHTML = "<iframe src=\"http://sel2in.com/pages/prog/html/ajax/confirm.html\" height=400 width=700></iframe>"
//in real can keep height 1 width 1 and location off page if you want it just to load elements, scripts etc
}
</script>
</head>
<body>
<form id="search" action="/search" method="get">
<input type=button onclick=logout1() value="Do Action">
</form >
AJAX是您要找的东西。
我强烈建议您使用jQuery
( 展示-> div )执行AJAX
调用,但是在Struts2
您可以在一秒钟之内尝试使用已弃用的 Dojo
插件,而无需下载任何库,只是使您有了一个主意。
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<head>
<sx:head/>
<script>
function loadAjax(){
var div = dojo.widget.byId("myDiv");
div.href = "yourAjaxAction.action";
div.refresh();
}
</script>
</head>
<body>
<input type="button"
value="Include a JSP fragment dynamically"
onclick="loadAjax();"/>
<sx:div id="myDiv"> </sx:div>
</body>
然后, yourAjaxAction.action
必须成功返回要包含的JSP代码段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.