Параметр, который получил можно назвать именем или возрастом, или многим другим. Я определил его как ключ в коде (очевидно, он не работает).
Как вы уже выяснили, это не работает, потому что @FormParam
ожидает имя параметра формы, как определено в соответствующей HTML-форме. Это означает, что вы должны знать, какой параметр формы вы хотите присвоить параметру (value
в этом случае) метода.
Вот определение @FormParam
аннотацию, извлеченной из JAX-RS specification:
FormParam Параметр
Указывает, что значение параметра метода должна быть извлечена из параметра формы в теле запроса объекта , Значение аннотации определяет имя параметра формы. Обратите внимание, что, хотя цель аннотации позволяет использовать поля и методы, спецификация требует только поддержки для использования в параметрах метода ресурса.
И в дополнение к этому следует добавить @Consumes
аннотацию к вашему методу ресурсов следующим образом:
@POST
@Path("/save")
@Consumes("application/x-www-form-urlencoded")
public Response saveS(@FormParam(key) String value) throws SQLException {
return Response.ok("TODO", MediaType.APPLICATION_JSON).build();
}
Update: Я не пробовал сам, но вы можете попробовать и сказать мне если он работает. Здесь вы должны получить все параметры, чтобы вы могли анализировать все поля формы:
@POST
@Consumes("application/x-www-form-urlencoded")
public void post(MultivaluedMap<String, String> formParams) {
// parse the map here
}
Я полагаю, что нет никакого способа сделать это, даже без FormParam? – Arturo
Не уверен, что это вам поможет, я обновил ответ. Посмотрите и дайте мне обратную связь, чтобы изменить ответ. – ujulu