@FormParam返回null值

时间:2017-08-29 17:03:57

标签: javascript java rest

我正在使用Java中的REST,并且在使用@FormParam时遇到了问题。

现在我有一个功能界面:

@POST
@Path("/naming/{name}/{age}")
public String populatePerson(@PathParam("name") String name, @PathParam("age") String age, @FormParam("hobby") String hobby) throws Exception;

,实施是

@Override
public String populatePerson(String name, String age, String hobby) throws JMSException {

    return "Made person " + name + " with age: " + age + " and hobby" + hobby;  
}

我创建了一个textarea表单,其中的爱好将从

中读取
<form action="javascript:submitInfo();">
<textarea id="hobby" name="hobby" placeholder="Enter hobby Here" style="height:300px; width:500px"></textarea>
        <button id="submitButton" data-dojo-type="dijit/form/Button">Submit</button>
</form>

我的submitInfo()函数是

<script>
        function submitInfo() {

                var xmlHttp = new XMLHttpRequest();
                var data = new FormData();
                var hobbyValue = hobby.value;
                data.append("hobby", hobbyValue);
                xmlHttp.open("POST", "rest/processor/naming/" + name + "/" + age, false);
                xmlHttp.send(data);
                alert(xmlHttp.responseText);
            }
    </script>

由于某种原因,当我收到回复时,它无法识别我在表单中输入的爱好值。它会返回正确的名称和年龄@PathParam。爱好又回来了。

知道为什么吗?

1 个答案:

答案 0 :(得分:0)

也许你错过了一个http标头。 尝试添加application / x-www-form-urlencoded:

http.setRequestHeader(“Content-type”,“application / x-www-form-urlencoded”);