为什么我不能在没有 的情况下使用

2023-12-07

假设有一个 servlet,其中包含代码:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    foo.Person p = new foo.Person("Evan");
    req.setAttribute("person", p);

    RequestDispatcher view = req.getRequestDispatcher("/result.jsp");
    view.forward(req, resp);
}

,这将转到result.jsp打印名字(Evan)。下面是它的外观图片(来源 Head First Servlet 和 JSP):

enter image description here

我知道<jsp:useBean>通过调用返回相同的 Person 对象getAttribute()- 因为他们在同一个请求范围。而在另一边,<jsp:getProperty>将会通知findAttribute()从字面上尝试找到值“person”的属性..并最终打印Evan.

但如果我不使用怎么办<jsp:useBean>?这是否意味着我无法在范围内访问“person”属性request?我的意思是即使我不使用它仍然会在那里<jsp:useBean>.那么为什么我必须有同样的value(“人”)在两者内id in <jsp:useBean> and name inside <jsp:getProperty>?简单去除<jsp:useBean>破坏了我的程序。

知道<jsp:getProperty> calls findAttribute(),如果只有一个属性(比如属性名称),将用作在范围内查找属性的参数页面>请求>会话>申请?为什么我必须“捆绑”这两个标签:<jsp:useBean> and <jsp:getProperty>?


你觉得下面的代码怎么样?

public class Main {
    public static void main(String[] args) {
        System.out.println(person);
    }
}

你一定已经猜对了不会编译成功.

现在,下面的代码怎么样?

public class Main {
    public static void main(String[] args) {
        Person person = new Person();// Declaring person
        System.out.println(person);
    }
}

Of course, it will be compiled successfully1 because now the compiler understands what person is.

同样,使用

<jsp:getProperty name="person" property="name">

没有声明person as

<!-- Declaring person -->
<jsp:useBean id="person" class="foo.Person" scope="request" />

不会编译成功.


1 Assuming Person.class is there.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我不能在没有 的情况下使用 ? 的相关文章

随机推荐

  • JavaScript 中奇怪的意外标记非法 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我有一个无法解决的语法错误 根据 W3 jQuery
  • 检查 SQL Server 实例是否在本地计算机上?

    我想确定我连接的 SQL Server 是否在本地计算机上 我知道连接到 SQL Server 时有很多方法可以识别 SQL Server 的服务器 实例名称 但是指定服务器名称的方法有很多不同 我不想自己在 IP 地址之间进行比较 机器名
  • JS/jQuery 在滚动事件上交换图像

    我有一个网站菜单 其工作原理与此类似 http jsfiddle net sinky XYGRW 在 stackoverflow 上发现 我的问题是 设计师希望将导航 主页按钮 中的徽标切换为较小的图标 不仅仅是缩小尺寸 而且实际上改变了图
  • 为什么像 chrome://downloads 或 chrome://apps 这样的本地 chrome-url 在无头模式下不起作用?

    我正在尝试访问 chrome 本地网址 但这不起作用 headless chrome 支持本地 URL 吗 我今天正在寻找这个 发现这个 大多数 chrome 内部页面不是在无头模式下实现的 这是 headless Chrome 本身的限制
  • 避免空引用异常

    显然 代码中的绝大多数错误都是空引用异常 是否有任何通用技术可以避免遇到空引用错误 除非我弄错了 否则我知道在 F 等语言中不可能有空值 但这不是问题 我问的是如何避免 C 等语言中的空引用错误 当向用户显示空引用异常时 这表明由于开发人员
  • 使用javascript动态启用和禁用css文件?

    我对 JavaScript 很陌生 我正在创建一个多语言网站 它包含 rtl 和 ltr 语言 我有两个用于语言的 css 当用户更改语言时 我想加载相应的 css 文件 这样可以吗 如果没有建议任何替代方法 可以使用 javascript
  • NSFetchedResultsController swift 部分

    我有一个表视图 它从具有 3 个字段的 CoreData 实体获取数据 firstName String lastName String 和 did NSNumber 这是一个可以打开或关闭的 UISwitch 我想用名字和姓氏填充表 但第
  • pydantic.error_wrappers.ValidationError:FastAPI

    我正在 fastapi 中进行增删改查 我有一个用户模型 并且创建了另一个名为 showuser 的模型 以仅显示查询中的某些特定字段 但是当我执行请求时 出现错误 我只是希望我的请求显示我在 showuser 中拥有的字段 我的模式 fr
  • Rplot.gam错误“1中的错误:object$nsdf:长度为0的参数”

    我正在尝试在 R 中绘制一个 gam 对象 这是我用 gam 包制作的 我收到了报告中相同的错误1 object nsdf 中的错误 使用plot gam 时长度为0 的参数 然而 在那里找到的解决方案 更新到最新版本 我认为 对我来说不起
  • 如何强制禁用 intel_pstate?即使在 grub 中使用 intel_pstate=disable 选项,intel_pstate 也会在重新启动时启用

    我正在尝试使用 cpu 频率缩放来设置 cpu 频率 在我的系统中 仅支持 powersave 性能频率缩放调节器 在其他文档中解释过 默认情况下 intel pstate 是启用的 并且它只支持 powersave 性能频率缩放 gove
  • 破坏红色区域的内联汇编

    我正在编写一个加密程序 其核心 一个广泛的乘法例程 是用 x86 64 汇编语言编写的 既是为了速度 也是因为它广泛使用诸如adc我不想内联这个函数 因为它很大并且在内循环中被调用多次 理想情况下 我还想为此函数定义一个自定义调用约定 因为
  • 结构对齐填充、填充的最大尺寸以及结构成员的顺序

    自从我发现我的 sizeof 运算符没有返回我期望的结果以来 我一直在学习结构数据填充 根据我观察到的模式 它将结构成员与最大的数据类型对齐 那么例如 struct MyStruct1 char a 1 byte char b 1 byte
  • 最新的 Oracle Data Provider for .NET (11.2.0.3.20) 破坏了 EF 更新向导

    我有 VS2012 和最新 32 位版本的 ODAC 带有 Oracle Developer Tools 的版本 5 安装在 Win7 机器上 一切都是全新安装 在此环境中 我有一个 ASP NET Web 窗体解决方案 该解决方案最初是在
  • 从多个 iframe 打印预览?

    我在一个页面中有几个 iframe 我想在打印预览中将所有 iframe 内容显示为 iframe 的快照 我用了window print 对于单个 iframe 来说 它工作得很好 但是我该如何为多个框架做呢 您需要将所有帧一一聚焦并合并
  • AttributeError:“NoneType”对象没有属性“dtype”

    我正在尝试使用张量流实现一个简单的神经网络 这是一个二元分类问题 X train 的形状 batch size 70 和 Y train batch size 2 我正在使用 csv 读取数据 这是我的代码 我在 python 3 6 0
  • __file__ 变量的含义/作用是什么?

    import os A os path join os path dirname file B os path dirname os path realpath file C os path abspath os path dirname
  • Rails 表单数据未保存到数据库

    我是 Rails 新手 正在尝试制作一个简单的网站来开始学习 但是 当我提交表单时 数据不会保存到数据库中 我真的不确定出了什么问题 我已经尝试弄清楚了一段时间了 如果我在 Rails 控制台中创建一条记录并保存它 该记录就会成功显示在数据
  • R 中的 gsub() 不会替换 '.' (点)

    我想替换中的点 2014 06 09 to 2014 06 09 我在用gsub 为它发挥作用 如果 x lt 2014 06 09 gsub 2 x 1 014 06 09 但当我尝试时 gsub x 1 代替 2014 06 09 cl
  • CSS:如何禁用字体的字距调整?

    如何禁用字体的字距调整 See the 字距调整概念 at 维基百科 字距调整不受字母间距控制 并且没有font kerning对于 CSS1 或 CSS2 新规范 CSS3 尚未被批准为标准 W3C 建议 但建议使用一个属性font ke
  • 为什么我不能在没有 的情况下使用

    假设有一个 servlet 其中包含代码 protected void doGet HttpServletRequest req HttpServletResponse resp throws ServletException IOExce