Spring MVC Post Request

42,960

Solution 1

When you are posting a form, you should use @ModelAttribute annotation.

Change your code to :

@RequestMapping("/property")
@ResponseBody
public String property(@ModelAttribute("userDto") UserDto userDto ) {
    System.out.println(userDto.getUsername());
    System.out.println(userDto.getPassword());
    return "Hello";
}

And your HTML / JSP can be :

<form method="post" name="userDto" action="http://localhost:8080/home/property">
    <input name="username"/>
    <input name="password"/>
    <input type="submit"/>
</form>

Solution 2

Request body is for when you are passing in something like a JSON or XML object (or raw data such as byte[]) to the HTTP POST. When you are POSTing form data then that is handled and parsed for you. The simplest way is to use the MVC form:form code with a command object, and then you will just receive a command object with all the entries from the form mapped to the object.

Solution 3

Request mapping default method is GET. have to specify url method with RequestMapping.

@RequestMapping(value="/property",method=RequestMethod.POST)
Share:
42,960

Related videos on Youtube

Akhil K Nambiar
Author by

Akhil K Nambiar

A BTech Graduate with 9+yrs expirence in Java and a die hard developer and open source fan.

Updated on December 11, 2020

Comments

  • Akhil K Nambiar
    Akhil K Nambiar over 3 years

    I have something like

    @RequestMapping("/property")
    @ResponseBody
    public String property(@RequestBody UserDto userDto ) {
    
        System.out.println(userDto.getUsername());
        System.out.println(userDto.getPassword());
    
        return "Hello";
    }
    

    in my controller.

    But it gives me an error when I post with

    <form method="post" action="http://localhost:8080/home/property">
    
        <input name="username"/>
        <input name="password"/>
        <input type="submit"/>
    </form>
    

    in my html. Where am I going wrong.