Spark 框架 request.body 无法获取复选框值
Spark framework request.body cant obtain checkbox values
我正在尝试从这样的 spark 框架上的 post 方法中获取复选框列表。我也在使用 Freemarker 模板。
HTML:
...
<form class="form-horizonal" name="maCreaIncidencia" action="/maCreaIncidencia" method="POST" accept-charset="utf-8">
<div class="col-lg-3"><!--CONTENEDOR-->
<fieldset><legend><h5>Roles Asignados</h5></legend>
<div class="checkbox" name="rolesAsignados" id="rolesAsignados"> <!--id="asignados">-->
<#list roles as rol>
<div class="row" name="asignados" id="asignados">
<input name="checkbox" type="checkbox" id="${rol.idRol}" value="${rol.idRol}" style="display:none" onClick="if(this.checked)desmarca(this);"><label for="${rol.idRol}" style="display:none">${rol.idRol} - ${rol.rol}</label>
</div>
</#list>
</div>
</fieldset>
</div>
<input class="btn btn-primary btn-lg active btn-block" type="submit" value="Añade Nueva Incidencia" >
</form>
...
并且在 java 代码中:
...
String url = request.body();
...
但是 url 值为空。可以告诉我解决方法吗?
首先,request.body()
returns客户端发送的请求体,不是url.
像这样一个简单的例子。
模板 (car.ftl)
<form action="/" method="POST" accept-charset="utf-8">
<input type="checkbox" name="vehicle" value="Bike"> I have a bike<br>
<input type="checkbox" name="vehicle" value="Car" checked> I have a car<br>
<input type="submit" value="Submit">
</form>
main.java
import org.apache.log4j.Logger;
import spark.ModelAndView;
import spark.template.freemarker.FreeMarkerEngine;
import static spark.Spark.get;
import static spark.Spark.post;
public class Main {
private static final Logger LOG = Logger.getLogger(Main.class);
public static void main(String args[]) {
get("/", (request, response) -> {
return new ModelAndView(null, "car.ftl");
}, new FreeMarkerEngine());
post("/", ((request, response) -> {
LOG.info("------> " + request.body());
return new ModelAndView(null, "car.ftl");
}), new FreeMarkerEngine());
}
}
日志输出
2015-10-13 15:34:44,889 INFO [qtp297991908-20 - /] Main: ------> vehicle=Car
在此处查看完整项目:https://github.com/dominicfarr/spark-framework-request-body
我正在尝试从这样的 spark 框架上的 post 方法中获取复选框列表。我也在使用 Freemarker 模板。
HTML:
...
<form class="form-horizonal" name="maCreaIncidencia" action="/maCreaIncidencia" method="POST" accept-charset="utf-8">
<div class="col-lg-3"><!--CONTENEDOR-->
<fieldset><legend><h5>Roles Asignados</h5></legend>
<div class="checkbox" name="rolesAsignados" id="rolesAsignados"> <!--id="asignados">-->
<#list roles as rol>
<div class="row" name="asignados" id="asignados">
<input name="checkbox" type="checkbox" id="${rol.idRol}" value="${rol.idRol}" style="display:none" onClick="if(this.checked)desmarca(this);"><label for="${rol.idRol}" style="display:none">${rol.idRol} - ${rol.rol}</label>
</div>
</#list>
</div>
</fieldset>
</div>
<input class="btn btn-primary btn-lg active btn-block" type="submit" value="Añade Nueva Incidencia" >
</form>
...
并且在 java 代码中:
...
String url = request.body();
...
但是 url 值为空。可以告诉我解决方法吗?
首先,request.body()
returns客户端发送的请求体,不是url.
像这样一个简单的例子。
模板 (car.ftl)
<form action="/" method="POST" accept-charset="utf-8">
<input type="checkbox" name="vehicle" value="Bike"> I have a bike<br>
<input type="checkbox" name="vehicle" value="Car" checked> I have a car<br>
<input type="submit" value="Submit">
</form>
main.java
import org.apache.log4j.Logger;
import spark.ModelAndView;
import spark.template.freemarker.FreeMarkerEngine;
import static spark.Spark.get;
import static spark.Spark.post;
public class Main {
private static final Logger LOG = Logger.getLogger(Main.class);
public static void main(String args[]) {
get("/", (request, response) -> {
return new ModelAndView(null, "car.ftl");
}, new FreeMarkerEngine());
post("/", ((request, response) -> {
LOG.info("------> " + request.body());
return new ModelAndView(null, "car.ftl");
}), new FreeMarkerEngine());
}
}
日志输出
2015-10-13 15:34:44,889 INFO [qtp297991908-20 - /] Main: ------> vehicle=Car
在此处查看完整项目:https://github.com/dominicfarr/spark-framework-request-body