繁体   English   中英

@FormParam返回空值

[英]@FormParam returning null value

我正在使用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。 爱好返回为空。

知道为什么吗?

也许您缺少http标头。 尝试添加application / x-www-form-urlencoded:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM