各位大虾,本人现有一个问题请教,请帮忙!!String aaa=1.jsp;
直接引用<jsp:include page="<%=aaa%>">在jsp页面中包含1.jsp这个文件,这样的引用是可以的。但是现在有一个问题,我的aaa这个变量是从数据库读出来,然后再引用,比如下面:
String aaa=rs.getString("filename");<jsp:include page="<%=aaa%>">
为什么这样就不可以了呢,好像是java编译的问题,前者直接编译了引用,而后者却多了一个数据库操作的过程,这样jsp引用就不能被编译,是不是这样呢?有什么办法可以解决这个问题!!!
直接引用<jsp:include page="<%=aaa%>">在jsp页面中包含1.jsp这个文件,这样的引用是可以的。但是现在有一个问题,我的aaa这个变量是从数据库读出来,然后再引用,比如下面:
String aaa=rs.getString("filename");<jsp:include page="<%=aaa%>">
为什么这样就不可以了呢,好像是java编译的问题,前者直接编译了引用,而后者却多了一个数据库操作的过程,这样jsp引用就不能被编译,是不是这样呢?有什么办法可以解决这个问题!!!
<jsp:include page="<%=aaa%>">
判断一下aaa的值,你必须要有一个值给aaa
<jsp:include page="<%=aaa%>">
String aaa="1.jsp";
然后<jsp:include page="<%=aaa%>">
这样就可以了但是,我现在aaa的要从数据库得到,如下:
String aaa=rs.getString("filename");
然后<jsp:include page="<%=aaa%>">却不行,看页面的源代码,感觉就没有执行这个引用为什么呢?大家可以测试一下!
你可以加上flush="true",看一下,如果还不行,你一个通过一个URL和FILE类包装一下你通过数据库读出的数据,如果还不行,你可以先从数据库中读出数据写入一个文件,然后使用这个文件的相对路径,这个肯定行
这句话是先于
<%%>代码执行的,换而言之就是说,在aaa还没值之前,<jsp:include page="<%=aaa%>">便已执行,那自然就得不到值啦
kanodo(后生)的回答是正確的!
反正这里必须明确给出路径
要directive.include来加入
out.println(aaa.length());看看长度是不是5就知道了。
可能 2 例如你parent.jsp中包含了child.jsp,如果你修改了child.jsp的内容,然后刷新parent.jsp是看不到效果的,你必须在parent.jsp中,多加一些无谓但不出错的代码,让服务器重新编译parent.jsp,才会见到效果。原因是服务器把parent.jsp和child.jsp作为一个整体来编绎成一个servlet的,如果服务器检测不到parent.jsp有变化,就不会重新编译.
你可以这样来测试
<%
System.out.println(aaa);
%>
先看一下aaa输出的值是什么,下来还可以把这个变量的值用request或session来传值。
应该这样写
<jsp:include page="<%=aaa%>"/>