You don't need to use form backing object for this. If you just want to access parameters that is passed in request (e.g. POST, GET ...) you need to get parameters map with HttpServletRequest#getParameterMap
method. Look at example example that prints all parameters name and value to console.
On the other hand. If you want to use binding you can wrap Map
object into form backing bean.
Controller
import java.util.Arrays;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class ParameterMapController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String render() {
return "main.html";
}
@RequestMapping(value = "/", method = RequestMethod.POST)
public String submit(HttpServletRequest req) {
Map<String, String[]> parameterMap = req.getParameterMap();
for (Entry<String, String[]> entry : parameterMap.entrySet()) {
System.out.println(entry.getKey() + " = " + Arrays.toString(entry.getValue()));
}
return "redirect:/";
}
}
main.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8" />
</head>
<body>
<form th:action="@{/}" method="post">
<label for="value1">Value 1</label>
<input type="text" name="value1" />
<label for="value2">Value 2</label>
<input type="text" name="value2" />
<label for="value3">Value 3</label>
<input type="text" name="value3" />
<input type="submit" value="submit" />
</form>
</body>
</html>