我对所有这些事情都很陌生,但希望你们能帮我理解它是如何运作的。 我有一个带字段的表格。我如何从客户端获取数据?正在寻找一些信息,但无法找到。
<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>
答案 0 :(得分:4)
仅仅为了记录,我遇到了类似的问题,这就是我如何解决它。
由于它是一个多部分请求,您必须指定
MultipartConfigElement multipartConfigElement = new MultipartConfigElement(path);
req.raw().setAttribute("org.eclipse.jetty.multipartConfig", multipartConfigElement);
您可以在SparkJava: Upload file did't work in Spark java framework
找到详细信息一旦正确完成,你应该能够像提到Stephan那样access the data using query params。
答案 1 :(得分:3)
我认为您需要使用request.params("userName")
,它会为您提供名称为userName
的
答案 2 :(得分:0)
正如Java doc所说,
如果参数数据是在请求正文中发送的(例如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);
}
答案 3 :(得分:-3)
我认为您最好使用像AngularJS或JQuery这样的js框架将表单数据转换为json,然后再将其发送到服务器。