以下是JSP的一段代码:
<% for(int i = 1; i <= 4; i++) {%>
<h<%=i%>>你好!JSP!</h<%=i%>><br>
<% } %>我觉得包含在<%%>里的就是JSP的代码,但是为什么将左大括号{移到下面就不对了呢?<% for(int i = 1; i <= 4; i++) %>
<% { %>
<h<%=i%>>你好!JSP!</h<%=i%>><br>
<% } %>错误原因:
An error occurred at line: 10 in the jsp file: /test/test.jsp
i cannot be resolved
7: pageEncoding="GBK"%>
8: <% for(int i = 1; i <= 4; i++) %>
9: <% { %>
10: <h<%=i%>>你好!JSP!</h<%=i%>><br>
11: <% } %>请各位帮忙解释下,谢谢!
<% for(int i = 1; i <= 4; i++) {%>
<h<%=i%>>你好!JSP!</h<%=i%>><br>
<% } %>我觉得包含在<%%>里的就是JSP的代码,但是为什么将左大括号{移到下面就不对了呢?<% for(int i = 1; i <= 4; i++) %>
<% { %>
<h<%=i%>>你好!JSP!</h<%=i%>><br>
<% } %>错误原因:
An error occurred at line: 10 in the jsp file: /test/test.jsp
i cannot be resolved
7: pageEncoding="GBK"%>
8: <% for(int i = 1; i <= 4; i++) %>
9: <% { %>
10: <h<%=i%>>你好!JSP!</h<%=i%>><br>
11: <% } %>请各位帮忙解释下,谢谢!
解决方案 »
- java 基础问题
- jstl map对象存在List中,在jsp页面如何用JSTL遍历?
- 直接启动TOMCAT打开网页 发现无法访问数据库 急 在线等
- 请问大家的Hibernate项目的类结构是怎么样的?我们的使用了DAO模式,一个表对应一个dao接口和一个实现dao,但我感觉很多代码都是重复的,
- 使用getRequestDispatcher从servlet返回页面时,页面我连接地址全变了
- 求助--Ant编译简单问题
- 新闻发布如何实现
- 生成itext的速度问题
- SSH架构中,struts继承ActionSupport类之后报错
- 关于javascript页面跳转
- 在glassfish中设置远程jms server无法连接, 求助
- 关于都市圈地图的问题
这里有问题 不是{位置的问题
我觉得你这样写有些麻烦,不知道你这样写 试试[code=jsp]<% for(int i = 1; i <= 4; i++){ out.println("<h"+i+">你好!JSP!</h"+i+"><br>");
} %>[/code]
for(int i=1;i<=4;i++){
out.print("<h"+i+">你好!JSP</h"+i+">");
}
%>
----------------------------------
<%for(int i=0;i<4;i++) %>
<%{ %>
您好啊
<%} %>
-----------------------------
只输出了 “您好啊”
要是加个 您好啊<%=i%> 就出错的
<h<%=i%>>你好!JSP!</h<%=i%>><br>
<% } %>
jsp页面引入JAVA代码段<%=%>需要加=号
你的问题是在编译的时候出现的问题。
tomcat把你编译的jsp文件放在目录为
tomcat安装目录\work\Catalina\localhost\工程名\org\apache\jsp下
如果你写的jsp的写法为:
<% for(int i = 1; i <= 4; i++) {%>
<h<%=i%>>你好!JSP!</h<%=i%>><br>
<% } %>
生成的servlert源文件关键代码为:
for(int i = 1; i <= 4; i++) {
out.write("\r\n");
out.write("<h");
out.print(i);
out.write(">你好!JSP!</h");
out.print(i);
out.write("><br>\r\n");
}
如果你写的jsp的写法为:
<% for(int i = 1; i <= 4; i++)%>
<%{ %>
<h<%=i%>>你好!JSP!</h<%=i%>><br>
<% } %>
生成的servlert源文件关键代码为:
for(int i = 1; i <= 4; i++)
out.write("\r\n");
out.write(" \t");
{
out.write("\r\n");
out.write("<h");
out.print(i);
out.write(">你好!JSP!</h");
out.print(i);
out.write("><br>\r\n");
}
很显然第二种写法for循环只有一条语句执行体。而下面又用out.println(i);来使用变量i。这个时候就找不到了。所以编译时通不过的。
个人见解
<{>
这样是错误的! 就想java里面
for()
..
{}
for()后面空行了,那么java语句就找不到下面的了!这个也是!
<%for%><%{%>这样写就像是for后面空行了!