gpt4 book ai didi

java - JSP 声明 scriptlet 访问 bean

转载 作者:行者123 更新时间:2023-12-01 23:35:44 25 4
gpt4 key购买 nike

我遇到了我正在处理的项目(不是我的代码)的情况。我是 JSP 的新手,所以很高兴了解发生了什么。

所以我有一个像这样的代码(它已经简化了很多):

<jsp:useBean id="accessManager" scope="session" class="AccessManager" />
<%! Object x = accessManager %>
<% Object y = accessManager %>

第二行不起作用,它不知道accessManager是什么。第三行 (y) 有效。

我知道声明 scriptlet 会转换为 java 类属性或方法,这些属性或方法在 jsp 初始化时执行一次,而普通 scriptlet (<% %>) 会转换为 _jspService 方法。但这两者的范围是什么?或者为什么我无法从声明 scriptlet 访问 bean?

谢谢!

最佳答案

!用于指定无上下文。

如果您使用<%! Object x = accessManager; %>它会产生这样的代码。

class Index {
Object x = accessManager;
}

如果您使用<% Object x = accessManager; %>它会产生这样的代码:

class Index {
public void foo(){
Object x = accessManager;
}
}

查看C:\Program Files\apache-tomcat-*\work\Catalina\localhost\*\org\apache\jsp\对于生成的 .java 文件。

(这个例子很简单。)

关于java - JSP 声明 scriptlet 访问 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18720488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com