欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

java.lang.NumberFormatException: null

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

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

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

<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>

對應(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ù)庫連接、
        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ù)庫連接、
        Connection conn  = JDBC.getConnection();
        Statement state = null;
        //局部變量沒有初始值
        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é)果錯誤截圖

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

最后叫來了朋友幫忙看,最后她說這里不能有空格,否則就會報(bào)500的錯誤,

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

總結(jié)

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

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

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

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

還有一種就是低級錯誤了,就是mysql·或者你·寫的數(shù)據(jù)庫里,有參數(shù)是空的,就會導(dǎo)致問題出現(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ù)奈恢锰砑涌刂婆_打印語句,方便檢查那一語句出錯。

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

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

相關(guān)文章

  • Springboot Caffeine本地緩存使用示例

    Springboot Caffeine本地緩存使用示例

    這篇文章主要介紹了Springboot Caffeine本地緩存使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java 動態(tài)編譯在項(xiàng)目中的實(shí)踐分享

    Java 動態(tài)編譯在項(xiàng)目中的實(shí)踐分享

    在 Java 中,動態(tài)編譯是指在運(yùn)行時(shí)動態(tài)地編譯 Java 源代碼,生成字節(jié)碼,并加載到 JVM 中執(zhí)行,動態(tài)編譯可以用于實(shí)現(xiàn)動態(tài)代碼生成、動態(tài)加載、插件化等功能,本文將給大家分享一下Java 動態(tài)編譯在項(xiàng)目中的實(shí)踐,感興趣的同學(xué)跟著小編一起來看看吧
    2023-07-07
  • springMVC+jersey實(shí)現(xiàn)跨服務(wù)器文件上傳

    springMVC+jersey實(shí)現(xiàn)跨服務(wù)器文件上傳

    這篇文章主要介紹了springMVC+jersey實(shí)現(xiàn)跨服務(wù)器文件上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • RocketMQ消息隊(duì)列實(shí)現(xiàn)隨機(jī)消息發(fā)送當(dāng)做七夕禮物

    RocketMQ消息隊(duì)列實(shí)現(xiàn)隨機(jī)消息發(fā)送當(dāng)做七夕禮物

    這篇文章主要為大家介紹了RocketMQ消息隊(duì)列實(shí)現(xiàn)隨機(jī)消息發(fā)送當(dāng)做七夕禮物,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java如何處理數(shù)據(jù)成為樹狀結(jié)構(gòu)

    Java如何處理數(shù)據(jù)成為樹狀結(jié)構(gòu)

    這篇文章主要介紹了Java如何處理數(shù)據(jù)成為樹狀結(jié)構(gòu)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • springboot啟動時(shí)如何獲取端口和項(xiàng)目名

    springboot啟動時(shí)如何獲取端口和項(xiàng)目名

    這篇文章主要介紹了springboot啟動時(shí)如何獲取端口和項(xiàng)目名,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 詳解Java正則表達(dá)式中Pattern類和Matcher類

    詳解Java正則表達(dá)式中Pattern類和Matcher類

    java.util.regex是一個(gè)用正則表達(dá)式所訂制的模式來對字符串進(jìn)行匹配工作的類庫包。包括兩個(gè)類Pattern和Matcher Pattern,Pattern是一個(gè)正則表達(dá)式經(jīng)編譯后的表現(xiàn)模式。Matcher對象是一個(gè)狀態(tài)機(jī)器,它依據(jù)Pattern對象做為匹配模式對字符串展開匹配檢查。
    2016-12-12
  • Java實(shí)現(xiàn)PDF轉(zhuǎn)Word的示例代碼(無水印無頁數(shù)限制)

    Java實(shí)現(xiàn)PDF轉(zhuǎn)Word的示例代碼(無水印無頁數(shù)限制)

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)PDF轉(zhuǎn)Word文件的效果,并可以無水印、無頁數(shù)限制。文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-05-05
  • List集合多個(gè)復(fù)雜字段判斷去重的案例

    List集合多個(gè)復(fù)雜字段判斷去重的案例

    今天小編就為大家分享一篇關(guān)于List集合多個(gè)復(fù)雜字段判斷去重的案例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • @Valid和@Validated注解校驗(yàn)以及異常處理方式

    @Valid和@Validated注解校驗(yàn)以及異常處理方式

    在Javaweb開發(fā)中,防止數(shù)據(jù)庫惡意攻擊是至關(guān)重要的,盡管前端校驗(yàn)可以起到一定的篩選作用,但通過工具如postman直接對后端發(fā)起請求的情況仍然需要后端進(jìn)行嚴(yán)格的數(shù)據(jù)校驗(yàn),Java生態(tài)下,@Valid注解配合SpringBoot提供了一個(gè)便捷高效的后端數(shù)據(jù)校驗(yàn)方案
    2024-11-11

最新評論