j1.jsp
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
j1
</title>
</head>
<body bgcolor="#ffffff">
<%
int a = 0;
%>
<%@include file="j2.jsp" %>
</body>
</html>
j2.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%=i%>
编译时报错
"j1.jsp": cannot find symbol; symbol : variable i, location: class org.apache.jsp.j1_jsp
"j2.jsp": cannot find symbol; symbol : variable i, location: class org.apache.jsp.j2_jsp
请问该如何解决?问题解决马上给分,先谢谢了!
------解决方案--------------------
1,你定义的是a,不是i~~
2,用<jsp:include>
------解决方案--------------------
吧<%=i%>中的i改为a即可
------解决方案--------------------
静态包含就是在编译以前把包含的内容嵌入到当前文件中,然后再进行编译。
错误是i没有定义
------解决方案--------------------
看来楼主没有搞清楚 jsp:include 和 include file的区别:
jsp:include 是 先在各自的页面中处理以后再组合到一块。
include file 是 先把所有代码静态的放在一起在进行统一编译和执行处理。
------解决方案--------------------
- Java code
<%@ page contentType="text/html; charset=GBK" %>
------解决方案--------------------
jsp1.jsp
<%!
int i=0;
%>
<html>
<body>
<%@include file="jsp2.jsp" %>
</body>
</html>
--------------
jsp2.jsp
this is myjsp
<%=i++ %>
------解决方案--------------------
------解决方案--------------------
<%@ page contentType="text/html; charset=GBK" %>
<%=i%>
中的i改成a就行,虽然ide会提示错误,但可以正常运行.
不相信可以试试.
如果实在不明白,运行一次页面,可以去这个目录tomcat 5.5\work\Catalina\localhost\....\...看jsp文件生成后的原代码.
------解决方案--------------------
楼主 你的代码我在本机测问题已经解决 代码没有问题 如果你IDE用的是JBuilder的话 你在运行程序的时候把检查JSP页面的那项去掉 就不会报你说的这个错误了 并能顺利运行 具体操作是 选择工程 点右键 选择properties选项 也就是最后一个 然后选择 Build选项 把倒数第二行的 Check JSPs for errors at build-time 这项的勾去掉 就可以了 试试 希望能帮到你 呵呵~
------解决方案--------------------
2.jsp本来就编译不过去吧。
i是没有定义过的。
------解决方案--------------------
把j2.jsp的
“<%@ page contentType="text/html; charset=GBK" %> ”
删除即可。
lz没有搞清楚 <%@ page 与jsp:include的区别。建议查看head first servlet&jsp中文版P401-407页,特别是407页
------解决方案--------------------
17楼和15楼正确的,
------解决方案--------------------