如何使用 requst getAttribute java 获取布尔值?

How to get boolean value with requst getAttribute java?

如何在请求中将布尔值设置为属性值。

考虑以下片段

protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException  {

 boolean isOriginal = (boolean) req.getAttribute(“isOriginalFile");
//Some code
}

其中请求 may/may 不包含 isOriginalFile 属性。如何处理?

解析getAttribute方法返回的值。

boolean isOriginal = Boolean.valueOf(String.valueOf(req.getAttribute("isOriginalFile")));

getAttributereturns一个Object,Boolean.valueOf方法接受一个String参数。所以,先把返回值转成String再解析。

https://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html#valueOf(java.lang.String)

假设当属性为 null 时得到 false 是您所期望的:

boolean isOriginal = Boolean.TRUE == req.getAttribute("isOriginalFile");

然后,如果您将属性设置为 Boolean.TRUE 以外的任何值(包括 null),您将得到 false.

您可以任意设置:

req.setAttribute("isOriginalFile", Boolean.TRUE);
req.setAttribute("isOriginalFile", (Boolean) true);
req.setAttribute("isOriginalFile", true);

但不是字符串(因为它随后将被评估为 false):

req.setAttribute("isOriginalFile", "true");