Angular Javax: поля нулевых значений, полученные на втором POST из той же формы, если поле формы было пустым в первый раз - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в Angular, и в этом отношении Javascript, поэтому меня легко смущает, как все это работает вместе, и я могу использовать подсказку на эту загадку.У меня есть форма, которая имеет поля, которые могут быть пустыми при отправке POST.Я использую Джерси с @Nullable на полях, которые могут быть пустыми.Если я использую форму в первый раз, нулевые значения преобразуются в пустую строку.Если я повторно отправлю сообщение POST, они будут нулевыми.Почему?

Я могу настроить обработчики для обоих этих случаев, но я также вижу случай, когда после того, как он был пустым в первый раз, заполненное поле становится пустым во втором POST.Это намного хуже.

Что необходимо сбросить, чтобы все POST из формы имели одинаковое поведение?

Контроллер электронной почты:

 'use strict';

angular.module('customerEmailApp')
  .controller('customerEmailController', function ($scope, $rootScope, CustomerEmailService) {
    $scope.payload = {
      emailFrom: $rootScope.loggedInAdminUser.displayName,
      emailTo: '',
      subject: '',
      htmlBody: ''
    };

    var toggleClickability = function () {
      $scope.isDisabled = !$scope.isDisabled;
    };
    $scope.sendEmail = function (payload) {
      toggleClickability();
      CustomerEmailService.sendEmail(payload, function () {
        toggleClickability();
      });
    };
  });

Обслуживается этой службой

    angular.module('customerEmailApp')
  .factory('CustomerEmailService', function (appConfigPromise, $http, $window) {
    return {
      sendEmail: function (payload, onSuccess) {
        return appConfigPromise.then(function (appConfig) {
          return $http.post(appConfig.adminServiceEndpoint + '/email', payload);
        }).then(function (response) {
          if (response) {
            onSuccess();
            $window.alert('' + response.data);
          }
        })
          .catch(function (reason) {
            $window.alert('' + reason.status + '. ' + reason.statusText);
            throw reason;
          });
      }
    };
  });

Десериализован с этим POJO

import javax.annotation.Nullable;

public class BatchMessage {


    // This address must be verified with Amazon SES.
    @Nullable
    public String emailFrom;

    @Nullable
    public String emailTo;

    // The subject line for the email.
    public String subject;

    // The HTML body for the email.
    public String htmlBody;

    public BatchMessage(){
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...