我公司某人才写的代码:
public static String getStr(String str,HttpServletRequest request){
String rel_Str="";
if(request.getParameter(str)!=null&&request.getParameter(str)!="")
rel_Str=request.getParameter(str);
else
{
// System.out.println(request.getAttribute(str));
if(request.getAttribute(str)!=null&&!request.getAttribute(str).equals(""))
rel_Str=(String) request.getAttribute(str).toString();
}
return rel_Str;
}
佩服佩服呀。

解决方案 »

  1.   

    StringUtilNotempty(“str”)能解决他想解决的问题吧    这俩&&猛啊!!       
      

  2.   

    if(request.getParameter(str)!=null&&request.getParameter(str)!="")
    ?? 这是什么 ??  还用&& ?  
      

  3.   


    rel_Str = (String) request.getAttribute(str).toString();除了这里有点冗余,没看出啥问题
      

  4.   

    request.getAttribute,request.getParameter分别判断,因为不知道是对象还是字符串,是这样的把
      

  5.   

    request.getParameter(str)!=""
    !request.getAttribute(str).equals("")对字符串判断相等,一般用equals,但是对于""这种字符串,正常人是不会new一个空字符串出来的,而是会使用字面常量。而对于string的字面常量,是可以用==来进行判断的。因此,这里的判断大可用==,而不必非得用equals。tomcat的源码里面对getParameter的处理:public String getParameter(String name ) {
            handleQueryParameters();
            ArrayList<String> values = paramHashValues.get(name);
            if (values != null) {
                if(values.size() == 0) {
                    return "";//这里直接就返回了字面常量的空字符串
                }
                return values.get(0);
            } else {
                return null;
            }
        }
      

  6.   

    其实还是会报NullPointerException
      

  7.   

    1:if(request.getParameter(str)!=null&&request.getParameter(str)!="")
    2:if(request.getAttribute(str)!=null&&!request.getAttribute(str).equals(""))
    我觉的lz 的意思是这样的哈:
    request.getParameter(str)返回字符串所以应用 “equals”
    request.getAttribute(str)返回的是object所以应用“==”
    UP
      

  8.   

    什么逻辑问题?代码啥问题?连&&都不知道?具体说一下,到底怎么2的?你确定?恰恰相反,我咋看着LZ是新手呢?
      

  9.   

    if(request.getParameter(str)!=null&&request.getParameter(str)!="")
    rel_Str=request.getParameter(str);
      你确定str不要引号也可以: