我无法将java中的字符串解析为long

时间:2013-11-09 06:06:13

标签: java servlets

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        Transactions trans=new Transactions();

        System.out.println(request.getParameter("assetid"));
        System.out.println(request.getParameter("barcodeno"));
        System.out.println(request.getParameter("location"));
        System.out.println(request.getParameter("employeeid"));
        System.out.println(request.getParameter("categoryid"));


        String categoryId=request.getParameter("categoryid");
        String employeeId=request.getParameter("employeeid");
        String Assetid=request.getParameter("assetid");
        String locationcode=request.getParameter("locationcode");

        long  AssetId=Long.parseLong(Assetid);
        long  categoryid123=Long.parseLong(categoryId);
        long  employeeid=Long.parseLong(employeeId);
        long  LocationCode=Long.parseLong(locationcode);

        System.out.println("here the employeeId id is"+employeeId);
        System.out.println("here the Assetid id is"+Assetid);



        trans.setBarcodeno(request.getParameter("barcodeno"));
        trans.setLocation(new LocationMaster(LocationCode));
        trans.setAssetId(AssetId);

        trans.setCategory(new CategoryMaster((categoryid123)));
        trans.setEmployee(new EmployeeMaster(employeeid));
        //trans.setEquipment(new EquipmentMaster(employeeid));

        SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
        Session sessionHb=sessionFactory.openSession();

        Transaction tx=sessionHb.beginTransaction();

        HttpSession session=request.getSession();
        sessionHb.save(trans);
        System.out.println("transition saved");
        tx.commit();
        response.sendRedirect("Assetisued.jsp");
        //CategoryMaster categorymaster =;

        }

以下是我在解析之前得到的值

Asset id=101
Categoryid=1
Barcode =1
Employeeid=10
locationid=1

亲爱的先生,我无法解析字符串值,因为它正在提供NumberFormatException。我能够获得所有字符串值,如图所示。我检查了一切,但无法理解究竟是什么问题。请检查并给我你的反馈......

3 个答案:

答案 0 :(得分:1)

首先,将这些参数的值存储到varibles中,然后打印变量的值以及将要开发的值。

e.g:

String categoryId=request.getParameter("categoryid");
System.out.println(categoryId);
long  categoryid123=Long.parseLong(categoryId);

查看是否可能发生NumberFormatException。

答案 1 :(得分:0)

您的输入中可能有空格。

尝试删除空格,呃:

long AssetId=Long.parseLong(Assetid.trim());

答案 2 :(得分:0)

这似乎是你发现问题的一个问题,而不是实际错误。

为了更容易找到问题,请确保遵循命名约定 即变量应该是骆驼套管

long  locationCode=Long.parseLong(locationcode);

long  LocationCode=Long.parseLong(locationcode);

我建议的第二件事是让你的变量名更具描述性和独特性。 对此有一个好的规则是:"如果变量之间的唯一区别是套管,它们太相似了。"

有关此次访问的更多信息http://www.oracle.com/technetwork/java/codeconv-138413.html

最后,如果您遇到问题并且您要求对其进行排队,则应该找到仍会产生问题的最少量代码。通过这种方式,您可以更轻松地帮助您,因此人们会更倾向于。

现在针对实际问题,我认为你需要确保你没有解析太多空格。 即 在

Barcode =1

您应该删除空格,使其变为

Barcode=1

并在

Asset id=101

我认为这个空间也引起了一些问题。

对不起,我没有解决你的问题,但我希望无论如何这都有帮助。