Я использую Spring
и Hiberate
, чтобы создать просто веб-сервис. В контроллере у меня длинный список аргументов из формы.Spring @RequestParam с классом
Мой контроллер
@RequestMapping(value="/addAccount", method=RequestMethod.POST)
public String addAccoundPOST(@RequestParam(value = "username") String username,
@RequestParam(value = "password") String password,
@RequestParam(value = "email") String email,
@RequestParam(value = "name") String name,
@RequestParam(value = "surname") String surname,
@RequestParam(value = "birth_date") String birth_date,
@RequestParam(value = "place") String place,
@RequestParam(value = "province") String province,
@RequestParam(value = "motorcycle") String motorcycle,
@RequestParam(value = "tel") String tel)
{
User user = new User();
if(username != null && username.length() >= 4)
user.setUsername(username);
if(password != null && password.length() >= 4)
user.setPassword(password);
// and more, and more, and mode....
return "addAccount";
}
Часть класса User:
@Entity
@Table(name = "users", catalog = "dbjadenazlot")
public class User implements Serializable {
private int uid;
private String ...;
/* --------------------------------- GET ------------------------------ */
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "uid", unique = true, nullable = false)
public int getUID()
{ return uid;}
@Column(name = "name", length = 45)
public String getName()
{ return name; }
// setters and rest code..
}
Можно ли конвертировать мои аргументы из запроса POST к классу? Если это возможно, что требуется?
@RequestMapping(value="/addAccount", method=RequestMethod.POST)
public String addAccoundPOST(@RequestParam(value = "user") User user)
{
return "addAccount";
}
Как я могу сократить код сокращения?
Что делать, если одним из параметров является дата, нужны некоторые аннотации или что-то еще? – kris14an
@ kris14an Посмотрите на '@ DateTimeFormat'. –
ОК, он работает! благодаря! – kris14an