最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于java.lang.NumberFormatException: null的問(wèn)題及解決

 更新時(shí)間:2023年09月20日 09:02:46   作者:熬夜分子  
這篇文章主要介紹了關(guān)于java.lang.NumberFormatException: null的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java.lang.NumberFormatException: null

不知道大家有沒(méi)有像我一樣常常因?yàn)樵诖a中多加了一個(gè)空格或名字寫(xiě)錯(cuò)一個(gè)字母,在報(bào)錯(cuò)后找半天都找不出來(lái)錯(cuò)在哪,叫同事來(lái)幫忙解決,找到問(wèn)題所在后真的想狠狠給自己一巴掌,總是犯這種低級(jí)錯(cuò)誤,有被無(wú)語(yǔ)到~

接下來(lái)進(jìn)入正題

我想點(diǎn)擊對(duì)應(yīng)的更新|刪除 時(shí)跳轉(zhuǎn)到對(duì)應(yīng)的頁(yè)面,代碼如下:

<c:forEach items="${listManager}" var="manager">
    <tr class="tr2">
       <td>${manager.id}</td>
       <td>${manager.name}</td>
       <td>${manager.price}</td>
       <td>${manager.introduce}</td>
       <td><a href="<%=path%>/cn/servlet/ManagerServlet?flag = update & m_id =${manager.id}" rel="external nofollow" >更新</a>&nbsp;&nbsp;&nbsp;
       <a href="<%=path%>/cn/servlet/ManagerServlet? flag =delete & m_id= ${manager.getId()}" rel="external nofollow" >刪除</a>
      </td>
     </tr>
</c:forEach>

對(duì)應(yīng)的MangerServlet代碼:

 if (flag.equals("delete")){
            System.out.println("=======delete"+flag);
            String m_id = req.getParameter("m_id");
            System.out.println(m_id);
            //將String類型的m_id轉(zhuǎn)換成int型
            Integer id = Integer.parseInt(m_id.trim());
            System.out.println("---id--"+id);
            ManagerDao managerDao = new ManagerDao();
            int m = managerDao.delManager(id);
            String path = "";
            if (m==1){
                List<Manager>listManager ;
                listManager = managerDao.list();
               // HttpSession session = req.getSession();
                //session.setAttribute("listManager",listManager);
                req.setAttribute("listManager",listManager);
                path="/manager/menu.jsp";
            }else {
                path = "/error.jsp";
            }
            RequestDispatcher dispatcher = req.getRequestDispatcher(path);
            dispatcher.forward(req,resp);
        }else if (flag.equals("update")){
            System.out.println("=======update"+flag);
            String m_id = req.getParameter("m_id");
            System.out.println(m_id);
            int id = Integer.parseInt(m_id);
            ManagerDao managerDao = new ManagerDao();
            Manager manager = managerDao.getManager(id);
            req.setAttribute("manager",manager);
            RequestDispatcher dispatcher = req.getRequestDispatcher("/manager/update.jsp");
            dispatcher.forward(req,resp);

ManagerDao層代碼:

public int delManager(int id) {
        //數(shù)據(jù)庫(kù)連接、
        Connection conn  = JDBC.getConnection();
        Statement state = null;
        // System.out.println(u);
        try {
            state  = conn.createStatement();
            String sql = "delete  from menus where  id="+id;
            System.out.println(sql);
            m = state.executeUpdate(sql);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        JDBC.close(conn, state,null);
        return  m;
    }
    public Manager getManager(int id) {
        //數(shù)據(jù)庫(kù)連接、
        Connection conn  = JDBC.getConnection();
        Statement state = null;
        //局部變量沒(méi)有初始值
        Manager manager = null;
        // System.out.println(u);
        try {
            state  = conn.createStatement();
            String sql = "select *  from menus where  id="+id;
            ResultSet rs = state.executeQuery(sql);
            if(rs.next()){
                manager = new Manager();
                manager.setId(rs.getInt(1));
                manager.setName(rs.getString(2));
                manager.setPrice(rs.getString(3));
                //manager.setPrice(rs.getBigDecimal(3));
                manager.setIntroduce(rs.getString(4));
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        JDBC.close(conn, state,null);
        return  manager;
    }

運(yùn)行結(jié)果錯(cuò)誤截圖

去網(wǎng)上找嘗試了各種方法都沒(méi)能解決,

最后叫來(lái)了朋友幫忙看,最后她說(shuō)這里不能有空格,否則就會(huì)報(bào)500的錯(cuò)誤,

還有我把update寫(xiě)成了updata,然后界面怎么都跳不過(guò)去報(bào)錯(cuò),我都服了我自己...

總結(jié)

1.大部分時(shí)候是類型轉(zhuǎn)化的問(wèn)題

比如這樣轉(zhuǎn)化:

int state = Integer.parseInt(request.getParameter(“state”))

在轉(zhuǎn)換過(guò)程中可能存在空格,或者傳遞url值的時(shí)候忘了傳遞參數(shù),或者傳遞錯(cuò)誤,導(dǎo)致獲取到的值為null。

還有一種就是低級(jí)錯(cuò)誤了,就是mysql·或者你·寫(xiě)的數(shù)據(jù)庫(kù)里,有參數(shù)是空的,就會(huì)導(dǎo)致問(wèn)題出現(xiàn)得把參數(shù)值補(bǔ)上,不能有空缺。

2.解決方法

2.1.在轉(zhuǎn)換之前去空格,Integer.parseInt(numString.trim()) ;

2.2.在轉(zhuǎn)換之前判空串:if(s!=""){轉(zhuǎn)換}

2.3.在轉(zhuǎn)換之前判空:if(s!=null){轉(zhuǎn)換}

在適當(dāng)?shù)奈恢锰砑涌刂婆_(tái)打印語(yǔ)句,方便檢查那一語(yǔ)句出錯(cuò)。

最后,敲代碼一定要細(xì)心 細(xì)心 再耐心吶~~~

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于SpringCloud手寫(xiě)一個(gè)簡(jiǎn)易版Sentinel

    基于SpringCloud手寫(xiě)一個(gè)簡(jiǎn)易版Sentinel

    SpringCloud Alibaba Sentinel是當(dāng)前最為流行一種熔斷降級(jí)框架,簡(jiǎn)單易用的方式可以快速幫助我們實(shí)現(xiàn)服務(wù)的限流和降級(jí),保證服務(wù)的穩(wěn)定性。
    2021-05-05
  • Java通過(guò)Modbus簡(jiǎn)單實(shí)現(xiàn)數(shù)采的示例代碼

    Java通過(guò)Modbus簡(jiǎn)單實(shí)現(xiàn)數(shù)采的示例代碼

    本文介紹了Java通過(guò)Modbus簡(jiǎn)單實(shí)現(xiàn)數(shù)采,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 深入淺析springsecurity入門登錄授權(quán)

    深入淺析springsecurity入門登錄授權(quán)

    SpringSecurity為我們提供了基于注解的權(quán)限控制方案,這也是我們項(xiàng)目中主要采用的方式,我們可以使用注解去指定訪問(wèn)對(duì)應(yīng)的資源所需的權(quán)限,這篇文章主要介紹了springsecurity入門登錄授權(quán),需要的朋友可以參考下
    2024-05-05
  • 詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

    詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

    這篇文章主要介紹了詳解Springboot整合ActiveMQ(Queue和Topic兩種模式),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Java8中如何通過(guò)方法引用獲取屬性名詳解

    Java8中如何通過(guò)方法引用獲取屬性名詳解

    這篇文章主要給大家介紹了關(guān)于Java8中如何通過(guò)方法引用獲取屬性名的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 詳解Java中如何使用日志庫(kù)在代碼中添加日志

    詳解Java中如何使用日志庫(kù)在代碼中添加日志

    這篇文章主要為大家介紹了Java中如何使用日志庫(kù)在代碼中添加日志詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • mybatis中的setting配置詳解

    mybatis中的setting配置詳解

    這篇文章主要給大家介紹了關(guān)于mybatis中setting配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-06-06
  • SpringBoot微信掃碼支付的實(shí)現(xiàn)示例

    SpringBoot微信掃碼支付的實(shí)現(xiàn)示例

    這篇文章主要介紹了SpringBoot微信掃碼支付的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • J2EE中的struts2表單細(xì)節(jié)處理

    J2EE中的struts2表單細(xì)節(jié)處理

    這篇文章主要介紹了J2EE中的struts2表單細(xì)節(jié)處理的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java實(shí)現(xiàn)字符串反轉(zhuǎn)

    Java實(shí)現(xiàn)字符串反轉(zhuǎn)

    這篇文章介紹了Java實(shí)現(xiàn)字符串反轉(zhuǎn)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評(píng)論

调兵山市| 喀什市| 津市市| 海阳市| 开阳县| 金塔县| 驻马店市| 中山市| 佳木斯市| 景德镇市| 通州区| 麦盖提县| 昆明市| 肇源县| 彭州市| 新晃| 连城县| 丹阳市| 丹棱县| 科技| 南川市| 拉孜县| 高平市| 武川县| 花垣县| 桐城市| 新乐市| 菏泽市| 陆河县| 洪湖市| 长乐市| 高要市| 慈溪市| 宁武县| 梁山县| 开江县| 沾化县| 准格尔旗| 四子王旗| 贺州市| 哈巴河县|