Jsp 如何从标记文件中的scriplet获取变量
这些是我在标记文件中的第一步。也许这个问题很简单。但我不能解决它 我有下面的标签文件Jsp 如何从标记文件中的scriplet获取变量,jsp,jsp-tags,tagfile,Jsp,Jsp Tags,Tagfile,这些是我在标记文件中的第一步。也许这个问题很简单。但我不能解决它 我有下面的标签文件 <% Foo foo=new Foo(); %> <jsp:include page="${foo.getFileName()}"/> 在我看来,jasper没有看到foo变量。我做错了什么?使用表达式语言${…}您的变量必须可以在页面上下文、请求、会话、应用程序…范围之一中访问 为了使代码正常工作,必须将其更改为: <% Foo foo=new Foo(); pageC
<%
Foo foo=new Foo();
%>
<jsp:include page="${foo.getFileName()}"/>
在我看来,jasper没有看到foo变量。我做错了什么?使用表达式语言
${…}
您的变量必须可以在页面上下文、请求、会话、应用程序…
范围之一中访问
为了使代码正常工作,必须将其更改为:
<%
Foo foo=new Foo();
pageContext.setAttribute("foo", foo);
%>
<jsp:include page="${foo.getFileName()}"/>
${some variable name}从范围(例如请求/会话/应用程序)获取变量名 但尚未在任何作用域中设置foo对象 只需尝试一下,
在scriptlet中使用session.setAttribute(“foo”,foo)
或pageContext.setAttribute(…)
,然后再试一次
现在,请尝试了解作用域以及哪个作用域更适合您的应用程序。这里,SCRPlet
foo
在
操作将at
用作EL
<jsp:useBean id="foo" class="packeage.Foo" scope="page"/>
<jsp:include page="${foo.fileName}"/>
谢谢您抽出时间。但是当我使用pagecontext时,我得到了以下信息:.org.apache.jasper.jaspereException:PWC6033:JSP PWC6197的Javac编译中的错误:JSP文件中的第11行发生错误:/WEB-INF/tags/insertrea.tag PWC6199:生成的servlet错误:找不到符号:变量pageContextI更新了帖子。查看您的异常,您的代码似乎正在标记文件中运行
<jsp:useBean id="foo" class="packeage.Foo" scope="page"/>
<jsp:include page="${foo.fileName}"/>