页面显示不出数据,报For input string: ""错

if判断里的原本是注释掉的//adminInfoService.getAdminInfoFunctions(admininfo.getId()).getFs().size()>0,可是getFs取的值为空,登录进不去,所以先写了true

@RequestMapping(value="/login",produces="text/html;charset=UTF-8")
@ResponseBody
public String login(AdminInfo ai,ModelMap model){
    //登录验证
    AdminInfo admininfo = adminInfoService.getAdminInfoByCond(ai);
    if(admininfo!=null&&admininfo.getName()!=null){

        System.out.println(admininfo.getName()+":"+admininfo.getFs());
        //验证过过后,在判断是否已为该管理员分配功能权限
        if(true){//adminInfoService.getAdminInfoFunctions(admininfo.getId()).getFs().size()>0
            //验证通过且已分配功能权限,则将admininfo对象存入model中
            model.put("admin", admininfo);
            //以json格式向页面发送成功信息
            return "{\"success\":\"true\",\"message\":\"登录成功\"}";
       }else{
            return "{\"success\":\"false\",\"message\":\"您没有权限\"}";
       }
    }else
        return "{\"success\":\"true\",\"message\":\"登录失败\"}";
}

显示页面usermanager.jsp的关键代码

<body class="easyui-layout">
  <div data-options="region:'noth',border:false" style="height:60px;background:#B3DFDA;padding:10px">
  north region
  </div>
  <div data-options="region:'west',split:true,title:'功能菜单'" style="width:200px;padding:10px">
    <ul id="tt"></ul><!-- 定义树 -->
  </div>
  <div data-options="region:'south',border:false" style="height:50px;background:#A9FACD;padding:10px">
  south region
  </div>
  <div data-options="region:'center',title:'主界面'">
    <div id="tabs" data-options="fit:true" class="easyui-tabs" style="width:500px;heigth:250px">
    </div>
  </div>
  <script type="text/javascript">
  //为树指定数据
  $("#tt").tree({
      url:'admininfo/getTree?adminid=${sessionScope.admin.id}'
  });

  $('#tt').tree({
      onclick:function(node){
          if("用户列表"==node.text){
              if($('#tabs').tabs('exits','用户列表')){
                 $('#tabs').tabs('select','用户列表');
              }else{
                 $('#tabs').tabs('add',{
                     title:nodel.text,
                     href:'userlist.jsp',
                     closable:true
                     });
              }
          }else if("管理员列表"==node.text){
              if($('#tabs').tabs('exits','管理员列表')){
                 $('#tabs').tabs('select','管理员列表');
              }else{
                 $('#tabs').tabs('add',{
                     title:nodel.text,
                     href:'adminlist.jsp',
                     closable:true
                     });
              }
          }else if("退出系统"==nodel.text){
              $ajax({
                  url:'admininfo/loginout',
                  sucess:function(data){
                      window.loction.href="admin_login.jsp";
                  }
              })
          }
      }
  });
  </script>

这是getAdminInfoByCond方法的映射文件

  <select id="getAdminInfoByCond" 
          parameterType="com.digital.pojo.AdminInfo" 
          resultType="com.digital.pojo.AdminInfo">
        select * from admin_info where name=#{name} and pwd=#{pwd} 
  </select>

这是报错:
图片说明

getAdminInfoFunctions的映射文件:

  <select id="getAdminInfoFunctions" parameterType="int" resultMap="getAdminInfoFunctionsMap">
        select ai.id,ai.name,f.id fuid,f.name fname,f.parentid fpid,f.isleaf fisleaf,f.nodeorder fno from admin_info ai left join powers p on ai.id=p.aid join functions f on p.fid=f.id where ai.id=#{id} ORDER BY fpid
  </select>
  <resultMap type="com.digital.pojo.AdminInfo" id="getAdminInfoFunctionsMap">
           <id property="id" column="id"/>
           <result property="name" column="name"/>
           <collection property="fs" ofType="com.digital.pojo.Functions">
             <id property="id" column="fuid"/>
             <result property="name" column="fname"/>
             <result property="parentid" column="fpid"/>
             <result property="isleaf" column="fisleaf"/>
           </collection>
  </resultMap>

1个回答

你这个异常与登录无关,是getTree方法里面有一个地方强转String为Integer,63行,但是String为空

qq_42266179
sysoalt/baba 回复迷路的公民: 不好意思,少贴了getAdminInfoFunctions的代码,我补一下代码,麻烦您再看一下
7 个月之前 回复
xinnian468153
迷路的公民 回复sysoalt/baba: 你前端只传了${sessionScope.admin.id}给getTree接口,但是查询却使用where name=#{name} and pwd=#{pwd},两个空值查不到吧
7 个月之前 回复
qq_42266179
sysoalt/baba 好像是取不到数据库的值,写了一个输出语句输出空值
7 个月之前 回复
xinnian468153
迷路的公民 回复sysoalt/baba: 是前端传到后端的adminId没有值?确认页面上有这个值吗?
7 个月之前 回复
qq_42266179
sysoalt/baba 如果是空的话,就好像是我这个问题说的了,,取不到值,
7 个月之前 回复
xinnian468153
迷路的公民 回复sysoalt/baba: parseInt方法的参数不能为空字符串
7 个月之前 回复
qq_42266179
sysoalt/baba 哦哦,看到了,可是String类型的变量用parseInt方法转为什么会报错呢。
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!