问题描述
|
在我的网页中(例如Link1:http:// localhost:8086 / MyStrutsApp / login.do),我有几个链接。当用户单击其中一个链接时,他将被带到另一个页面(例如link2:http:// localhost:8086 / MyStrutsApp / AddBook.jsp)以填写html表单。
现在,我要实现的是,当任何用户单击链接时,该html表单(Link2)就会显示在同一页面(即Link1)上。
我不知道如何实现这一目标。
解决方法
实现此目的的AJAX方法如下:
您在原始页面上有一个DIV将被替换(即,其内容仅在原始上下文中才有意义或完全为空)
您的Link2 Servlet仅产生上述DIV的内容(而不是该页面的内容)
您只需使用少量Javascript进行AJAX调用,然后在DIV中填充响应即可。
如果要使用Dojo,HTML页面将如下所示:
<!-- main content -->
<div id=\"leftpanel\">
<h3>This content will be replaced</h3>
You can <a href=\"#\" onClick=\"updateFromURL(\'/MyStrutsApp/AddBook.jsp)\">add a book</a>
</div>
Javascript代码如下所示:
<script src=\"http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js\" type=\"text/javascript\"></script>
<script type=\"text/javascript\">
function display_wait(s) {
var mainPanel=dojo.byId(\"leftpanel\");
mainPanel.innerHTML=\'<div class=\"waitingmsg\">\'+s+\'</div>\';
}
function updateFromURL(url) {
display_wait(\"loading content\");
dojo.xhrGet({url:url,load:function(result) {
dojo.byId(\'leftpanel\').innerHTML=result;
}});
}
</script>
(如Rafa所述,您可以使用相同的技术在对话框中显示新零件)
, 您始终可以使用jQuery来显示对话框... http://jqueryui.com/demos/dialog/
使用AJAX检索页面并将其显示在对话框中。
, 要在另一页面中显示一页,请使用iframe
。请参阅iframe文档。
要在外部页面上建立链接,请将其目标页面加载到iframe
中,为iframe
提供name
属性,并为链接提供匹配的target
属性。