简体   繁体   English

无法在 Servlet 中将 Int 转换为 String

[英]Cannot Convert Int to String in Servlet

im tried to make a method for insert data, But an error in parsing value.我试图制作一种插入数据的方法,但解析值时出错。 this error seems to be in the process convert int to string in my insert method, and show this error :此错误似乎是在我的插入方法中将 int 转换为字符串的过程中,并显示此错误:

type Exception report

message null

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.NumberFormatException: null
    java.lang.Integer.parseInt(Integer.java:542)
    java.lang.Integer.parseInt(Integer.java:615)
    servlet.JobServlet.insert(JobServlet.java:137)
    servlet.JobServlet.doGet(JobServlet.java:85)
    servlet.JobServlet.doPost(JobServlet.java:123)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

note The full stack trace of the root cause is available in the Apache Tomcat/8.0.27 logs.

help me fix it.帮我修好。

this my insert method on servlet :这是我在 servlet 上的插入方法:

private void insert(HttpServletRequest request, HttpServletResponse response)
            throws SQLException, IOException {
        String id = request.getParameter("idJob");
        String title = request.getParameter("titleJob");
        int min = Integer.parseInt(request.getParameter("minSalary"));
        int max = Integer.parseInt(request.getParameter("maxSalary"));
        dao.save(new Job(id, title, min, max));
        response.sendRedirect("jobServlet?action=list");
    }

and this my jsp code :这是我的jsp代码:

    <div class="card-body card-block">
                                    <form action="jobServlet?action=insert" method="post" class="form-vertical">
                                        <div class="row form-group">
                                            <div class="col-12 col-md-9">
                                                <input type="text" id="idJob" name="idJob" placeholder="Enter Job Id..." class="form-control">
                                            </div>
                                            <div class="col-12 col-md-9">
                                                <input type="text" id="titleJob" name="titleJob" placeholder="Enter Job Title..." class="form-control">
                                            </div>
                                            <div class="col-12 col-md-9">
                                                <input type="text" id="minSalary" name="minSalary" placeholder="Enter Minimal Salary..." class="form-control">
                                            </div>
                                            <div class="col-12 col-md-9">
                                                <input type="text" id="maxSalary" name="maxSalary" placeholder="Enter Maximal Salary..." class="form-control">
                                            </div>
                                        </div>
                                        <input type="submit" name="submit" value="Save" class="btn btn-primary btn-sm"/>

i tried this but still didn't work :我试过这个,但仍然没有用:

private void insert(HttpServletRequest request, HttpServletResponse response)
                throws SQLException, IOException {
            String id = request.getParameter("idJob");
            String title = request.getParameter("titleJob");
            String min = request.getParameter("minSalary");
            String max = request.getParameter("maxSalary");
            dao.save(new Job(id, title, Integer.parseInt(min),Integer.parseInt(max)));
            response.sendRedirect("jobServlet?action=list");
        }

inspect your request (can easily do if you are using a browser) and see if the maxSalary and minSalary are passed.检查您的请求(如果您使用浏览器可以轻松完成)并查看 maxSalary 和 minSalary 是否通过。 One of them is null.其中之一为空。

Also, if you are using html5, theres no need to use text as your input type.此外,如果您使用的是 html5,则无需使用文本作为输入类型。 Simply use number and you will get an int.只需使用数字,您就会得到一个整数。

Furthermore, whereever you use Integer.parseInt(), catch the number format exception.此外,无论您在何处使用 Integer.parseInt(),都要捕获数字格式异常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM