jsp:include后,父页面加载不出来 b.jsp页面用jsp:include a.jsp,可是最终加载只能加载出来a页面,b页面内容显示不出来,为什么,求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 检查下 a.jsp 是不是把out给close了?碰到问题最好能分段排查,比如先增加一个c.jsp,并且c.jsp里面只写一行静态文本,然后b.jsp里面改为include a.jsp。这样可以确定下问题出在哪一边。 没有close,还有就是重新写个静态页面c.jsp,用b.jsp include c.jsp,还是只能显示C 那感觉是你 b.jsp 页面有问题吧,你咋做的include? 前后一段的代码一起贴出来看看。 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@include file="/commons/taglibs.jsp"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><link rel="StyleSheet" href="${ctx }/css/dtree.css" type="text/css" /><script type="text/javascript" src="${ctx }/js/dtree.js"></script></head><body><form action="" method="post" id="changeTestcase"><table> <tr> <td>测试计划:</td> <td><select name="planName" onchange="searchTestcaseByPlan();"> <c:forEach items="${listPlan }" var="plan"> <option value="${plan.name }" <c:if test="${plan.name==planName }">selected="selected"</c:if>>${plan.name} </option> </c:forEach> </select></td> </tr></table><div class="dtree"><script type="text/javascript"> d = new dTree('d'); d .add( 0, -1, '${projectName} (<font color="green">${successCount}</font>,<font color="red">${failedCount}</font>,<font color="blue">${lockedCount}</font>/${testcaseCount})', '#'); <c:forEach items="${listgroup}" var="group"> d .add( '${group.id}', '${group.parent.id}', '${group.name}(<font color="green">${group.successCount}</font>,<font color="red">${group.failedCount}</font>,<font color="blue">${group.lockedCount}</font>/${group.count})', '#', '', '', '${ctx }/tree/img/folder.gif', '${ctx }/tree/img/folderopen.gif'); </c:forEach> <c:forEach items="${listTptc}" var="testcases"> d .add( 't_${testcases.testcase.id}', '${testcases.testcase.testcaseGroup.id}', ' <font size="2" <c:if test="${testcases.result.status=='通过'}">color="green"</c:if> <c:if test="${testcases.result.status=='失败'}">color="red"</c:if> <c:if test="${testcases.result.status=='锁定'}">color="blue"</c:if>>${testcases.testcase.id}_${testcases.testcase.name}</font>', 'testcase!listSingelTestcaseToExec.action?testplanTestcaseId=${testcases.id}'); </c:forEach> d.icon.root = "${ctx }/tree/img/base.gif"; d.icon.folder = "${ctx }/tree/img/folder.gif"; d.icon.folderOpen = "${ctx }/tree/img/folderopen.gif"; d.icon.node = "${ctx }/tree/img/page.gif"; d.icon.empty = "${ctx }/tree/img/empty.gif"; d.icon.line = "${ctx }/tree/img/line.gif"; d.icon.join = "${ctx }/tree/img/join.gif"; d.icon.joinBottom = "${ctx }/tree/img/joinbottom.gif"; d.icon.plus = "${ctx }/tree/img/plus.gif"; d.icon.plusBottom = "${ctx }/tree/img/plusbottom.gif"; d.icon.minus = "${ctx }/tree/img/minus.gif"; d.icon.minusBottom = "${ctx }/tree/img/minusbottom.gif"; d.icon.nlPlus = "${ctx }/tree/img/nolines_plus.gif"; d.icon.nlMinus = "${ctx }/tree/img/nolines_minus.gif"; document.write(d); function searchTestcaseByPlan() { var resultForm = document.getElementById("changeTestcase"); resultForm.action = "testcase!changeExecTestcase.action"; resultForm.submit(); }</script></div></form></body></html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@include file="/commons/taglibs.jsp"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript" src="${ctx }/js/jquery-1.4.4.js"></script><script type="text/javascript" src="${ctx }/js/jquery.validate.js"></script><link href="${ctx }/css/layout.css" type="text/css" rel="stylesheet" /><script type="text/javascript"> function execTestcase() { var radiobuttonLocked = document.getElementById("radiobuttonLocked"); var radiobuttonFailed = document.getElementById("radiobuttonFailed"); var radiobuttonSuccess = document.getElementById("radiobuttonSuccess"); var re = document.getElementById("re"); var execform = document.getElementById("execTestcaseForm"); var summary = document.getElementById("summary"); if (summary.value == "") { alert("请先选择用例"); return false; } else if (radiobuttonLocked.checked == false && radiobuttonSuccess.checked == false && radiobuttonFailed.checked == false) { alert("请先选择执行结果"); return false; } else { if (radiobuttonLocked.checked == true && re.value == "") { alert("请填写锁定原因"); return false; } else { execform.action = "testcase!execTestcase.action"; execform.submit(); } } }</script></head><body><div> <jsp:include page="execTestcase.jsp"/></div><form action="testcase!execTestcase.action" method="post" id="execTestcaseForm"><table align="center"> <tr> <td>日期</td> <td>执行者</td> <td>状态</td> <td>缺陷关联</td> <td>测试级别</td> </tr> <tr> <td>${execTime }</td> <td>${listSingelTestcase.user.username}</td> <td>${result.status }</td> <td>${defectTestcaseTestplan.id }</td> <td>${listSingelTestcase.testcase.grade.name}</td> </tr> <tr> <td>摘要:</td> <td><input type="text" value="${listSingelTestcase.testcase.summary }" readonly="readonly" id="summary"></td> <td>期望结果:</td> <td><textarea readonly="readonly">${listSingelTestcase.testcase.expectedResult }</textarea></td> </tr> <tr> <td>步骤:</td> <td><textarea readonly="readonly">${listSingelTestcase.execStep }</textarea></td> </tr> <tr> <td>备注:</td> <td><textarea name="re" id="re">${result.re }</textarea></td> </tr> <tr> <td>执行结果:</td> <td><input type="radio" id="radiobuttonSuccess" name="status" value="通过" <c:if test="${result.status=='通过' }">checked="checked"</c:if>> 通过</td> <td><input type="radio" id="radiobuttonFailed" name="status" <c:if test="${result.status=='失败' }">checked="checked"</c:if> value="失败"> 失败</td> <td><input type="radio" id="radiobuttonLocked" name="status" <c:if test="${result.status=='锁定' }">checked="checked"</c:if> value="锁定"> 锁定</td> <td><input type="button" value="保存结果" onclick="execTestcase();"> </td></table></form></body></html>这个是B页面 你include的A页面,是个完整页面,也就是有完整的</HTML>结束标签的,这个不太对吧;浏览器看到</html>还以为整个页面都结束了呢。应该include的A页面是一个HTML片段,比如整个以<div>开始,以</div>结束。或者B页面里面用iframe去includeA。 如果不include B页面能否正常显示? 若能则是 include 文件有问题; 被引用文件不能包含某些JSP代码(例如不能设置HTTP头)修改下文件再试试<jsp:include page="execTestcase.jsp" flush="true"/> 被引用文件不能包含某些JSP代码(例如不能设置HTTP头)8楼也说了 改改你的a.jsp 不行啊,不include能正常显示,include就不能了,代码在上面,帮看看啊 八楼说的你试过了么?如果 c.jsp 内容只有:<p>你好</p>b页面中 <jsp:include page="c.jsp" /> 仍然会啥都不显示? tomcat问题 求助:关于acegi安全框架的配置问题。 spring连接数据源简历表,但在Oracle里select * from tab查不出 Spring一个让我纠结的问题 Generated servlet error: ORACLE数据的客户端登陆的【服务】这项填什么? Struts2标签id字符串嵌套的问题 敬请各位帮忙!急 不仅仅是表单验证,难呐! 请教jfreereport怎样加入jBuilder中? 求助sql改成hql 关于spring的依赖注入 谢谢了
那感觉是你 b.jsp 页面有问题吧,你咋做的include? 前后一段的代码一起贴出来看看。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@include file="/commons/taglibs.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="StyleSheet" href="${ctx }/css/dtree.css" type="text/css" />
<script type="text/javascript" src="${ctx }/js/dtree.js"></script>
</head>
<body>
<form action="" method="post" id="changeTestcase">
<table>
<tr>
<td>测试计划:</td>
<td><select name="planName" onchange="searchTestcaseByPlan();">
<c:forEach items="${listPlan }" var="plan">
<option value="${plan.name }" <c:if test="${plan.name==planName }">selected="selected"</c:if>>${plan.name}
</option>
</c:forEach>
</select></td>
</tr>
</table>
<div class="dtree"><script type="text/javascript">
d = new dTree('d');
d
.add(
0,
-1,
'${projectName} (<font color="green">${successCount}</font>,<font color="red">${failedCount}</font>,<font color="blue">${lockedCount}</font>/${testcaseCount})',
'#');
<c:forEach items="${listgroup}" var="group">
d
.add(
'${group.id}',
'${group.parent.id}',
'${group.name}(<font color="green">${group.successCount}</font>,<font color="red">${group.failedCount}</font>,<font color="blue">${group.lockedCount}</font>/${group.count})',
'#', '', '', '${ctx }/tree/img/folder.gif',
'${ctx }/tree/img/folderopen.gif');
</c:forEach> <c:forEach items="${listTptc}" var="testcases">
d
.add(
't_${testcases.testcase.id}',
'${testcases.testcase.testcaseGroup.id}',
' <font size="2" <c:if test="${testcases.result.status=='通过'}">color="green"</c:if> <c:if test="${testcases.result.status=='失败'}">color="red"</c:if> <c:if test="${testcases.result.status=='锁定'}">color="blue"</c:if>>${testcases.testcase.id}_${testcases.testcase.name}</font>',
'testcase!listSingelTestcaseToExec.action?testplanTestcaseId=${testcases.id}');
</c:forEach> d.icon.root = "${ctx }/tree/img/base.gif";
d.icon.folder = "${ctx }/tree/img/folder.gif";
d.icon.folderOpen = "${ctx }/tree/img/folderopen.gif";
d.icon.node = "${ctx }/tree/img/page.gif";
d.icon.empty = "${ctx }/tree/img/empty.gif";
d.icon.line = "${ctx }/tree/img/line.gif";
d.icon.join = "${ctx }/tree/img/join.gif";
d.icon.joinBottom = "${ctx }/tree/img/joinbottom.gif";
d.icon.plus = "${ctx }/tree/img/plus.gif";
d.icon.plusBottom = "${ctx }/tree/img/plusbottom.gif";
d.icon.minus = "${ctx }/tree/img/minus.gif";
d.icon.minusBottom = "${ctx }/tree/img/minusbottom.gif";
d.icon.nlPlus = "${ctx }/tree/img/nolines_plus.gif";
d.icon.nlMinus = "${ctx }/tree/img/nolines_minus.gif"; document.write(d); function searchTestcaseByPlan() {
var resultForm = document.getElementById("changeTestcase");
resultForm.action = "testcase!changeExecTestcase.action";
resultForm.submit();
}
</script></div>
</form>
</body>
</html>
pageEncoding="UTF-8"%>
<%@include file="/commons/taglibs.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${ctx }/js/jquery-1.4.4.js"></script>
<script type="text/javascript" src="${ctx }/js/jquery.validate.js"></script>
<link href="${ctx }/css/layout.css" type="text/css" rel="stylesheet" />
<script type="text/javascript">
function execTestcase() {
var radiobuttonLocked = document.getElementById("radiobuttonLocked");
var radiobuttonFailed = document.getElementById("radiobuttonFailed");
var radiobuttonSuccess = document.getElementById("radiobuttonSuccess");
var re = document.getElementById("re");
var execform = document.getElementById("execTestcaseForm");
var summary = document.getElementById("summary");
if (summary.value == "") {
alert("请先选择用例");
return false;
} else if (radiobuttonLocked.checked == false
&& radiobuttonSuccess.checked == false
&& radiobuttonFailed.checked == false) {
alert("请先选择执行结果");
return false;
} else {
if (radiobuttonLocked.checked == true && re.value == "") {
alert("请填写锁定原因");
return false;
} else {
execform.action = "testcase!execTestcase.action";
execform.submit();
}
}
}
</script>
</head>
<body>
<div>
<jsp:include page="execTestcase.jsp"/></div>
<form action="testcase!execTestcase.action" method="post"
id="execTestcaseForm">
<table align="center">
<tr>
<td>日期</td>
<td>执行者</td>
<td>状态</td>
<td>缺陷关联</td>
<td>测试级别</td>
</tr>
<tr>
<td>${execTime }</td>
<td>${listSingelTestcase.user.username}</td>
<td>${result.status }</td>
<td>${defectTestcaseTestplan.id }</td>
<td>${listSingelTestcase.testcase.grade.name}</td>
</tr>
<tr>
<td>摘要:</td>
<td><input type="text"
value="${listSingelTestcase.testcase.summary }" readonly="readonly"
id="summary"></td>
<td>期望结果:</td>
<td><textarea readonly="readonly">${listSingelTestcase.testcase.expectedResult }</textarea></td>
</tr>
<tr>
<td>步骤:</td>
<td><textarea readonly="readonly">${listSingelTestcase.execStep }</textarea></td>
</tr>
<tr>
<td>备注:</td>
<td><textarea name="re" id="re">${result.re }</textarea></td>
</tr>
<tr>
<td>执行结果:</td>
<td><input type="radio" id="radiobuttonSuccess" name="status" value="通过"
<c:if test="${result.status=='通过' }">checked="checked"</c:if>>
通过</td>
<td><input type="radio" id="radiobuttonFailed" name="status"
<c:if test="${result.status=='失败' }">checked="checked"</c:if>
value="失败"> 失败</td>
<td><input type="radio" id="radiobuttonLocked" name="status"
<c:if test="${result.status=='锁定' }">checked="checked"</c:if>
value="锁定"> 锁定</td>
<td><input type="button" value="保存结果" onclick="execTestcase();">
</td>
</table>
</form>
</body>
</html>这个是B页面
或者B页面里面用iframe去includeA。
修改下文件再试试
<jsp:include page="execTestcase.jsp" flush="true"/>
8楼也说了 改改你的a.jsp
八楼说的你试过了么?如果 c.jsp 内容只有:<p>你好</p>b页面中 <jsp:include page="c.jsp" /> 仍然会啥都不显示?