这是一段使用了动态form的一段代码
DynaActionForm dynForm = (DynaActionForm) form;
String name = (String) dynForm.get("username");
String pagesize = request.getParameter("pagesize");
//String pagesize = (String) dynForm.get("pagesize");
if (pagesize == null)
   pagesize = "10";
如果我把pagesize作为一个dynForm的属性,代码变为
DynaActionForm dynForm = (DynaActionForm) form;
String name = (String) dynForm.get("username");
//String pagesize = request.getParameter("pagesize");
String pagesize = (String) dynForm.get("pagesize");
if (pagesize == null)
   pagesize = "10";
这时if代码段不再执行,经过调试发现,pagesize这时等于""而不再等于null,这是为什么?!!!!

解决方案 »

  1.   

    哦 看错了 String是不是为空用str.equals("")判断吧
      

  2.   

    是否在DynaActionForm 中对pagesize做了处理,比如当pagesize == null 的时候,改成 "" 了
      

  3.   

    post的表单里存在field名为pagesize的,而且其值为"",这是request.getParameter("pagesize")等于"";
    如果表单不存在pagesize时,request.getParameter("pagesize")==null。
      

  4.   

    有是null 的长度还是4("null")所以判断的时候就稍微麻烦点了
      

  5.   

    是这样的,在上面的代码所在的页面中又包含了一个页面A,在A页面中有一个表单,是个文本框,叫做pagesize,我把它做为了动态form的属性,就出现了这样的问题
      

  6.   

    String pagesize = request.getParameter("pagesize");
    当提交的form中有名为pagesize的控件时,String pagesize=""否则为null对象
      

  7.   

    一般情况下,在程序中都会做这样的判断,String str........
    ...........
    if( str == null ){
       str="";
    }
    ...........
    if( str.equals("") ){
       /* 在这里进行你的操作 */
    }---------------
    这样做的好处,不但可以是程序符合逻辑,
    而且,也可以排除 NullPointException 异常。防止对空指针进行操作。
      

  8.   

    zeq258(近朱者赤) 这个处理我也知道,但是我就是不明白为什么request获得的就是null,而form调用对应的方法获得的却是“”?