繁体   English   中英

如何通过当前(不在 div 内)加载(替换)外部页面?

[英]How to load (replace) an external page by the current (no inside a div)?

我正在用 jsp 构建我的第一个 Web 应用程序,我认为设计可能会更好,但是,它可以工作。 我想要的是加载一个外部页面,但没有将其包装在 div 元素中。 让我解释一下:

我的主页,它有两个空的 div,它们的内容都是由 load Jquery 函数加载的。

wsIndex.jsp

    <html>
        <script>            
        $(document).ready(function() {                  
            $('#divWSInputForm').load('wsInputForm.jsp');
            $('#divWSInputDataTable').load('wsInputDataTable.jsp');
        })            
        </script>

        <div id="divWSInputForm"></div>
        <div id="divWSInputDataTable"></div>
 </html>

以下是第一个div(divWSInputForm)的内容。 它有一个带有一个输入字段和一个按钮的表单。 它还有一个用于按钮的 Ajax Jquery 事件。

wsInputForm.jsp

<html>
<script>
$(document).ready(function() {
$('#sbmsave').click(function(event){
    $.post(
            'wsSave.jsp',
            {itxtcode:$('#itxtcode').val()},            
            function(responseText){
                $('#divWSInputDataTable').html(responseText);
                ...
            }
    );
} );    

})  
</script> 

<form id="rendered-form" method="post" >
<input name="itxtcode" id="itxtcode" type="text">
.. other inputs ..
<button name="sbmsave" id="sbmsave" type="button" >Save</button>
</form>
</html>

以下是第二个div(divWSInputDataTable)的内容。 在内部,我从 Oracle 数据库请求并检索一些数据,然后我用这些数据构建一个表。

wsInputDataTable.jsp

<html>
<%
// Connect to Oracle and retrieve data into a rs (ResultSet)
%>

<table id="workshops" cellspacing="0">
<thead>
<th>Code</th>
...
</thead>    

<tbody>
<%
while (rs.next()) {
%>
<tr>
<td><%= rs.getString(1) %></td>
...
</tr>       
<%}%>
</tbody>

</table>
</html>

这是从 wsInputForm.jsp (sbmsave) 通过 Ajax post 调用的 jsp 页面。

wsSave.jsp

   <%       
    DataSource ds = new DataSource();
    Connection conn = ds.connect();
    CallableStatement cstmt = conn.prepareCall("{? = call Pkg_WorkShop.f_insertWorkShop(?)}");
    cstmt.registerOutParameter(1, Types.INTEGER);
    cstmt.setString(2, request.getParameter("itxtcode").toString());
    cstmt.execute();        
    %>
    <html >
    <script>
    $(document).ready(function() {              
        $('#cont').load('wsInputDataTable.jsp');            
    })
    </script>
    <div id="cont"></div>

我不确定,但我想每次单击 sbmsave 按钮时,wsInputDataTable.jsp 的内容都会加载到 div (id="cont") 中。 所以,如果这是真的,在“X”点击后,我当前的页面将有“X”div的元素一个在另一个里面。 不是吗?。 这是我想解决的问题。

我想知道的是存在另一种加载外部页面内容的方法,但没有在 div 元素内部。 只需加载并替换当前页面的内容。

提前致谢。

我通过在 wsSave.jsp 上使用 jquery 加载并从主 jsp 检索 div 中的响应来计算出来。 (我不知道这些元素可以从外部jsp中加入)

<script>
$('#divWSInputDataTable').load('wsInputDataTable.jsp');
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM