数字格式异常 - 无法将字符串转换为长值

时间:2017-06-14 06:04:50

标签: angularjs json spring-mvc form-data

  

JSP代码---我在脚本中使用了Angular js。问题是表单Data没有被发送到portlet类中的资源方法。此外,当我在控制台中记录表单数据时,它显示为空。它占用JSON数据并附加到表单数据中。 json值作为事务数据传递{1:“1”,purchaseRegisterId:33411,undefined:“book3.jpg”},documentId作为documentId :: documents33411传递。这些数据来自控制台日志。

$scope.savePurchaseRegisterEntry=function(documentId, json){

    console.log("documentId :: "+documentId);
    //console.log("json");
    console.log(json);
    var fd = new FormData();
    fd.append('auditDetailesId',$scope.auditDetailesId);
    console.log(fd);
    var documentcollection=[];
    for(var key in json){
        fd.append(key,json[key]);
        if("purchaseRegisterId"!=key && key!=='undefined'){
            documentcollection.push(key);
        }
    }

    $.each( $("#"+documentId), function( input_key, input_value ) {
        $.each( input_value.files, function( file_key, file_value ) {
            fd.append('myFiles', file_value);
        });
    });
    fd.append("documentCollectionIds",documentcollection.join(','));


    console.log("fd");
    console.log(fd);
    console.log("documentcollectionids :: "+documentcollection.join(','))

    //return false;
    $http({
        method:'POST',
        url:'<%=savePurchaseRegisterEntry%>',
        type:"json",
        data:fd,
        headers: {'Content-Type': undefined},
        transformRequest:angular.identity
    }).success(function(response){
        console.log(response);
        var response=angular.fromJson(response.selectedTransactionList);
        $scope.dataList=angular.fromJson(response.data);

        $scope.ariaValuenow =response.currentCount;
        $scope.ariaValuemin=0;
        $scope.ariaValueMax=response.data[0]['maxInputDocCount']* response.total;
        $scope.percentageComplete=(($scope.ariaValuenow - $scope.ariaValuemin) * 100) / ($scope.ariaValueMax - $scope.ariaValuemin);

        if($scope.percentageComplete==100){
            $scope.saveStatus();
            $scope.readyForAudit=true;
        }else{
            $scope.readyForAudit=false;
        }

    });
}
  

Resurces Method ---这里提取数据以将值存储到数据库表中。

public void savePurchaseRegisterEntry(ResourceRequest req,
        ResourceResponse res) throws SystemException, IOException {
    _log.info("i am in savePurchaseRegisterEntry!!!");
    ThemeDisplay themeDisplay = (ThemeDisplay) req
            .getAttribute(WebKeys.THEME_DISPLAY);

    _log.info(" ----- " + ParamUtil.getString(req, "purchaseRegisterId"));
    _log.info(" ----- " + ParamUtil.getLong(req, "purchaseRegisterId"));
    String documentCollectionIds=ParamUtil.getString(req, "documentCollectionIds");
    String[] documentCollectionIdArray=documentCollectionIds.split(",");

    MultiDocumentUploadUtil.createFolder(req, themeDisplay ,ParamUtil.getLong(req, "purchaseRegisterId") , "purchaseRegisterId");

    String fileIds=MultiDocumentUploadUtil.fileUpload(themeDisplay, req);
    _log.info("fileIds : "+fileIds);
    long purchaseRegisterId =ParamUtil.getLong(req, "purchaseRegisterId");
    for(String s : documentCollectionIdArray){
        System.out.println("s is "+Long.parseLong(s));
        _log.info(Long.parseLong(s)+"long  sssss "+ s+" s :: "+ParamUtil.getLong(req, s));
        _log.info(Long.valueOf(s)+"long  sssss "+ s+" s :: "+ParamUtil.getLong(req, s));
        AuditDocumentCollection adc= AuditDocumentCollectionLocalServiceUtil.fetchByPurchaseRegisterIdAnddocumentCollectionId(purchaseRegisterId, Long.valueOf(s));
        AuditDocumentCollection adc1=adc;
        if(adc==null){
            adc=AuditDocumentCollectionLocalServiceUtil.createAuditDocumentCollection(CounterLocalServiceUtil.increment());
        }

        adc.setDocumentCollectionId(Long.valueOf(s));
        adc.setPurchaseRegisterId(purchaseRegisterId);
        adc.setValue(ParamUtil.getLong(req, s));

        if(adc1==null){
            adc.setCreateDate(new Date());
            adc.setCreatedBy(themeDisplay.getUserId());
            adc.setModifiedBy(themeDisplay.getUserId());
            adc.setModifiedDate(new Date());
            AuditDocumentCollectionLocalServiceUtil.addAuditDocumentCollection(adc);
        }else{
            adc.setModifiedBy(themeDisplay.getUserId());
            adc.setModifiedDate(new Date());
            AuditDocumentCollectionLocalServiceUtil.updateAuditDocumentCollection(adc);
        }

    }


    PurchaseRegister purchaseRegister=PurchaseRegisterLocalServiceUtil.fetchPurchaseRegister(purchaseRegisterId);

    if(!fileIds.isEmpty()){
        purchaseRegister.setDocumentIds(fileIds);
    }

    PurchaseRegisterLocalServiceUtil.updatePurchaseRegister(purchaseRegister);

    JSONObject jsonobject = JSONFactoryUtil.createJSONObject();
    long auditDetailesId=ParamUtil.getLong(req, "auditDetailesId");

    jsonobject.put("selectedTransactionList",CommonUtil.getAuditProcessInfo( auditDetailesId));

    PrintWriter out = res.getWriter();
    out.write(jsonobject.toString());
    out.flush();
    out.close();
}
  

我认为表单数据中存在的数据正被发送到资源方法。它没有采取documentCollectionIds并且它是空的。我得到的错误就是这个,

 [http-bio-3030-exec-10][PurchaseRegisterPortlet:644] i am in savePurchaseRegisterEntry!!!
 05:58:34,050 INFO  [http-bio-3030-exec-10][PurchaseRegisterPortlet:648]  ----- 
 05:58:34,050 INFO  [http-bio-3030-exec-10][PurchaseRegisterPortlet:649]  ----- 0
 Folder is already Exist
 fileEntryList.toArray().toString() :: 34529
 05:58:34,255 INFO  [http-bio-3030-exec-10][PurchaseRegisterPortlet:657]fileIds : 34529
 Exception in thread "liferay/document_library_image_processor-3"05:58:34,256 ERROR [DispatcherPortlet:559] Could not complete request
 java.lang.NumberFormatException: For input string: ""
 at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:453)
at java.lang.Long.parseLong(Long.java:483)
at com.auditcompliance.purchaseregister.controller.PurchaseRegisterPortlet.savePurchaseRegisterEntry(PurchaseRegisterPortlet.java:660)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

0 个答案:

没有答案