这个问题之所以出现是因为我阅读了Arjan Tijms 关于 JSF 2.3 的博客文章。在那里,他列出了可以通过 CDI 注入的所有 JSF 工件。虽然HttpServletRequest提到了,HttpServletResponse但并没有出现在我一开始并不相信的上述清单上。
为了进行尝试,我设置了一个简单的服务器(JavaEE8、Wildfy22):
@Inject private HttpServletRequest req;工作得很好@Inject private HttpServletResponse res;投掷DeploymentException: WELD-001408: Unsatisfied dependencies for type HttpServletResponse我不明白为什么HttpServletResponse不应该注射。毕竟,我们的目标是通过简洁的注入来取代复杂的方法链。如果是HttpServletRequest,FacesContext.getCurrentInstance().getExternalContext().getRequest();现在可以缩短为上述注入。
好吧,在 的情况下HttpServletResponse,没有可替换的候选注入FacesContext.getCurrentInstance().getExternalContext().getResponse();,如上所示。
总结:为什么可以HttpServletRequest通过 CDI 注射但HttpServletResponse不能?
该问题基于以下命令的输出:
$ hexdump -C acpid.pid
00000000 36 39 37 0a |697.|
00000004
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,0x36 0x39 0x37被解析为其关联的符号6 9 7。由于0x0A是换行符,因此它们不是表示它的普通符号(根据 ASCII 表),但是
为什么0x0A解析为一个点?
我的操作系统是Ubuntu 18.04.3。
我看到了以下可能性:
let first_float: f64 = 3.4;
let second_float = 4.5f64;
let third_float = 5.6 as f64;
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以声明浮点数吗?我不是指不同的浮点类型,如f32和f64。