Ответ 1
Я столкнулся с той же проблемой. Я использовал queryParams
для его решения:
request.queryParams("userName")
Я новичок в этом, но надеюсь, что вы, ребята, можете мне помочь понять, как это работает. Я получил форму с полем. Как получить данные от клиента? Был поиск некоторой информации, но не мог найти.
<form action="Dispatcher" method="post">
<fieldset>
<p>Name</p>
<input type="text" name="userName" required="true">
<p>Email</p>
<input type="text" name="userEmail" required="true">
<input type="submit" value="submit">
</fieldset>
</form>
Я столкнулся с той же проблемой. Я использовал queryParams
для его решения:
request.queryParams("userName")
Просто для записи, я столкнулся с аналогичной проблемой, и это, как я ее решил.
Поскольку это многопользовательский запрос, вам нужно будет указать, что
MultipartConfigElement multipartConfigElement = new MultipartConfigElement(path);
req.raw().setAttribute("org.eclipse.jetty.multipartConfig", multipartConfigElement);
Здесь вы можете найти подробности SparkJava: файл загрузки не работает в инфраструктуре Spark java
Как только это будет сделано правильно, вы сможете получить доступ к данным с помощью параметров запроса, как упоминалось выше, Stephan.
Я думаю, вам нужно использовать request.params("userName")
, который предоставит вам список параметров, представленных с именем userName
Как говорит Java документ ,
Если данные параметров были отправлены в теле запроса, например, при запросе HTTP POST, то чтение тела напрямую через getInputStream() или getReader() может помешать выполнению этого метода.
Поэтому request.queryParams("userName")
не будет работать после вызова request.body()
(например, для регистрации). Я написал служебную функцию для получения параметра.
public static String getParameter(String body, String param) {
HashMap<String, String> params = new HashMap();
for (String s : body.split("&")) {
String[] kv = s.split("=");
params.put(kv[0], kv[1]);
}
String encoded = params.get(param);
return URLDecoder.decode(encoded, StandardCharsets.UTF_8);
}
Я думаю, вам лучше использовать фреймворк js, например AngularJS или JQuery, для преобразования данных формы в json перед отправкой на сервер.