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

如何使用requst getAttribute java获取布尔值?,java,httprequest,getattribute,Java,Httprequest,Getattribute,如何在请求中将布尔值设置为属性值 考虑以下代码段 protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { boolean isOriginal = (boolean) req.getAttribute(“isOriginalFile"); //Some code } 其中请求可能/可能不包含isOriginalFile属性。如

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

考虑以下代码段

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

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

其中请求可能/可能不包含
isOriginalFile
属性。如何处理此问题?

解析getAttribute方法返回的值

boolean isOriginal = Boolean.valueOf(String.valueOf(req.getAttribute("isOriginalFile")));
getAttribute返回一个对象,Boolean.valueOf方法接受一个字符串参数。因此,首先将返回的值转换为字符串,然后对其进行解析


解析getAttribute方法返回的值

boolean isOriginal = Boolean.valueOf(String.valueOf(req.getAttribute("isOriginalFile")));
getAttribute返回一个对象,Boolean.valueOf方法接受一个字符串参数。因此,首先将返回的值转换为字符串,然后对其进行解析


假设在属性为
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
):


假设在属性为
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
):


应该是
Boolean.valueOf(…)
,开头的引号需要修正。谢谢注意,如果没有这样的属性,String.valueOf()将抛出NPE@BalajiKrishnan,
String.valueOf(Object)
不会抛出NPE。由于
req.getAttribute
的返回类型是Object,它将专门匹配重载
String.valueOf(Object)
,因此它可以工作!应该是
Boolean.valueOf(…)
,开头的引号需要修正。谢谢注意,如果没有这样的属性,String.valueOf()将抛出NPE@BalajiKrishnan,
String.valueOf(Object)
不会抛出NPE。由于
req.getAttribute
的返回类型是Object,它将专门匹配重载
String.valueOf(Object)
,因此它可以工作!不错!工作很好:-)不错!工作罚款:-)