表单数据提交邮递员而不是浏览器

时间:2018-02-01 01:26:35

标签: java html spring forms spring-boot

我正在使用邮递员工具向以下网址提交帖子请求" http://localhost:8080/myapp/consumer"我没有设置任何标题,但我的应用程序仍然可以读取它并使用并成功显示预期的输出但是当我通过使用来自jsp页面的html表单执行此操作时它不起作用可以请一些人帮助我在这方面,我尝试了很多解决方案,但没有任何效果,下面是我的代码。

~/.jupyter

我的HTML代码看起来像这样

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.nonprofit.charity.nonprofit.databaseoperations.PaideUserService;
import com.nonprofit.charity.nonprofit.entity.PaideUser;

@RestController
public class Consumer {

    @Autowired
    private PaideUserService paideUserService;




    @RequestMapping("/consumer")
    public List<PaideUser> getAllUsers(@RequestParam("email") String email){
        return paideUserService.getOneUser(email);
    }


    @RequestMapping(method=RequestMethod.POST,value="/consumer")
    public void somethingNew(@ModelAttribute PaideUser user) {

        System.out.println("This is FirstName: "+user);
        paideUserService.addNewRow(user);
        System.out.println("Success");

    }

}

当我提交时,我到目前为止看到了以下错误

<form method="post" action="consumer" enctype="multipart/form-data">
<input type="text" name="firstName">
<input type="text" name="lastName">
<input type="text" name="email">
<input type="text" name="address">
<input type="text" name="zipCode">
<input type="text" name="phone">
<input type="submit">
</form>

但正如我早些时候所说,如果我从邮递员那里收到邮寄请求,它的工作正常。我不知道我的表格或控制器是否有问题,有人请帮助我,我们将非常感谢任何帮助或建议。

我的PaideUser看起来像

There was an unexpected error (type=Bad Request, status=400).
Validation failed for object='paideUser'. Error count: 1

1 个答案:

答案 0 :(得分:1)

我重现了你的环境,它适用于正确的值。很可能你的问题是电话领域。由于它不是int,因此无法保存文本,空值或超过Integer.MAX_VALUE的数字。它也不能用于保存典型的手机号码。更好地使用String Related question

我建议您打开浏览器的DevTools,选择“网络”选项卡,然后查看您的POST请求的确切位置(标题和所有内容),并尝试将其与邮递员请求进行比较。

此外,表单中没有middleName。可能不是问题,但我想我仍然会指出它。