Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在同一页上显示页面数据,而不将其转发到另一页_Java_Jquery_Ajax_Struts 1 - Fatal编程技术网

Java 在同一页上显示页面数据,而不将其转发到另一页

Java 在同一页上显示页面数据,而不将其转发到另一页,java,jquery,ajax,struts-1,Java,Jquery,Ajax,Struts 1,在我的网页(如Link1:)中,我有几个链接。当用户单击其中一个链接时,他会被带到另一个页面(例如link2:)以填写html表单 现在我想实现的是,当任何用户单击链接时,html表单(Link2)显示在同一页面上(即Link1) 我不知道如何实现这一点。要在另一个页面中显示一个页面,请使用iframe。看 要使外部页面上的链接将其目标页面加载到iframe中,请给iframe一个name属性,并给链接一个匹配的target属性。您始终可以使用jQuery来显示对话框 使用AJAX检索页面并将其

在我的网页(如Link1:)中,我有几个链接。当用户单击其中一个链接时,他会被带到另一个页面(例如link2:)以填写html表单

现在我想实现的是,当任何用户单击链接时,html表单(Link2)显示在同一页面上(即Link1)


我不知道如何实现这一点。

要在另一个页面中显示一个页面,请使用
iframe
。看


要使外部页面上的链接将其目标页面加载到
iframe
中,请给
iframe
一个
name
属性,并给链接一个匹配的
target
属性。

您始终可以使用jQuery来显示对话框


使用AJAX检索页面并将其显示在对话框中。

实现此目的的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>
<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>

此内容将被替换
你可以
Javascript代码如下所示:

<!-- 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>
<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>

功能显示\u等待{
var mainPanel=dojo.byId(“leftpanel”);
mainPanel.innerHTML=''+s+'';
}
函数updateFromURL(url){
显示等待(“加载内容”);
xhrGet({url:url,
加载:函数(结果){
byId('leftpanel').innerHTML=result;
}});
}

(正如Rafa提到的,您可以使用相同的技术在对话框中显示新零件)

为什么要这样做?两个不同页面具有不同URL的页面更容易被人和谷歌理解。想想这个页面,例如stackoverflow.com,以及不同的页面有不同的URL。@vistige:但这里还有“添加注释”,它允许我们在不离开页面的情况下添加注释,我们可以添加答案,而无需进入新页面。如果你可以看一下,我使用了urs脚本,但当我点击
添加一本书时,我想要(此内容将被替换)文本将被form2.html数据替换,即它的html表单,但它不会发生…它对我来说很好-你需要通过HTTP服务器加载html文件,但是,如果你只是将浏览器指向文件URL,它就不起作用。(如果您只是想尝试一下,您可以使用类似“python-msimplehttpserver”的东西来简单地为当前目录中的文件提供服务)