jsp页面中的变量的作用域规则是什么?使用标记将页面添加到页面中?
我的理解是,一个包含的页面本质上是将verbatum复制到页面中,这将使我假设如果我在Parent jsp中声明了一个变量,它将在子节点中可用.
然而Eclipse抱怨这一点(可以理解的是,因为我可以将页面包含在任何页面中或者单独使用它们.当我尝试启动tomcat服务器时,它无法启动.
我基本上想从父页面的会话中获取几个变量,并在子页面中使用它们.这不起作用.
所以我想到了从每个子页面的会话中获取它们的想法,但是我想知道我是否可以给它们所有相同的变量名称,或者如果我必须为它们选择不同的变量名称每个页面都没有冲突.
如果我在父jss中导入log4net,那么我还需要在子代码中导入它吗?
Kri*_*ris 84
在JSP中,有两种方法可以包含其他jsp页面.
<%@include file="include.jsp"%>
Run Code Online (Sandbox Code Playgroud)
和
<jsp:include page="include.jsp" />
Run Code Online (Sandbox Code Playgroud)
如果您使用父宣布前者,那么任何变量JSP将在include.jsp(当然Eclipse将不会认为这是你猜测),因为它是由编译器有效地复制范围.
如果使用第二种方法,则包含在运行时完成,包含页面具有自己的范围.
同样适用于进口.尽管在包含页面中冗余导入它们是安全的.
如果我使用前者,我更喜欢用.jspf后缀它们来表示JSP片段.我可以在片段文件中关闭一些日食警告.但总的来说,我试图避免使用该方法,而更喜欢第二种方法.
更多信息可以在这里的文档中找到:Include指令和JSP include.
如果要在页面路径中使用变量,请使用以下内容:
<% pageContext.include("/cities/" + (String) request.getAttribute("country_code") + ".jsp"); %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47208 次 |
| 最近记录: |