将文本区域值作为请求发送到 spring 始终为空

Sending text area values as request to spring is always null

我有两个这样的文本框:

<div class="form-group">
    <label for="comment">Numbers:</label>
    <textarea class="form-control" rows="3" ng-model="numbers" placeholder="Numbers in one per line format"></textarea>
    <br>
    <label for="comment">Message:</label>
    <textarea class="form-control" rows="2" ng-model="message" ng-trim="true" placeholder="Enter your message here"></textarea>
</div>

我正在发送来自 angular 的请求:

$scope.sendSMS = function () {
    var formData = {
        numbers: $scope.numbers,
        message: $scope.message
    };

    Auth.sendSMS(formData, successAuth, function () {
        console.log(JSON.stringify(formData)); //prints both values
        $rootScope.error = 'Message not sent';
        console.log($rootScope.error);
    });
};

授权服务 (http post):

return{
    sendSMS: function(data, success, error){
        $http.post('mvc-dispatcher/sendSMS', data).success(success).error(error);
    }
}

虽然在前端我可以在发送前打印这两个值,但是在服务器端,消息的文本区域始终为空,数字的文本区域打印正确:

Numbers: 123456789
message: null

我不确定哪里出了问题。服务器端和前端都没有错误

休息控制器:

@RestController
public class smsController {

    @RequestMapping(value = "/sendSMS", consumes = "application/json", headers = "content-type=application/x-www-form-urlencoded")
    public void sendMessage(@RequestBody MessageBean msgBean) {

        String numbers = msgBean.getNumbers();
        System.out.println("Numbers: " + numbers);
        String message = msgBean.getMessages();
        System.out.println("message: " + message);
    }
}

Dispatcher-servlet:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <context:component-scan base-package="com.spring.rest.controllers" />
    <mvc:annotation-driven />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

使用的罐子:

jackson-annotations-2.7.3.jar
jackson-databind-2.7.3.jar
jackson-core-2.7.3.jar
Spring Framework release 4.2.2

消息 Bean:

public class MessageBean {

    private String numbers;
    private String messages;

    public String getNumbers() {
        return numbers;
    }

    public void setNumbers(String numbers) {
        this.numbers = numbers;
    }

    public String getMessages() {
        return messages;
    }

    public void setMessages(String messages) {
        this.messages = messages;
    }   
}

您输入的参数名称有误,试试这个;)

var formData = {
    numbers: $scope.numbers,
    message: $scope.message
};

已编辑:
现在我们清楚了,你在MessageBean中声明了一个字段messages,但是你试图给它一个名为message的参数,message将不会匹配到messages ] 当 Spring 做转换的时候,所以你应该试试这个;)

var formData = {
    numbers: $scope.numbers,
    messages: $scope.message
};