如何用当前页面加载(替换)外部页面(div内部没有)



我正在用jsp构建我的第一个web应用程序,我认为设计可能会更好,但它确实有效。我想要的是加载一个外部页面,但不将其封装在div元素中。让我来解释一下:

在我的主页面上,它有两个空的div,它们的内容都由loadJquery函数加载。

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>

这是通过Ajax post从wsInputForm.jsp(sbmsave)调用的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>

最新更新