I need submit a object to this controller:(我需要向该控制器提交一个对象:)
@RequestMapping(value = "/insert_pedido", method=RequestMethod.POST)
@ResponseBody
public String insert_pedido(@RequestParam("cliente") Integer cliente_id, @ModelAttribute("pedido") Pedido pedido) throws JsonProcessingException {
...
}
through a javascript function like that:(通过像这样的javascript函数:)
function insert_pedido(e) {
var cliente = e.dataset.cliente;
var pedido = ?
var url = e.dataset.url;
var xhr = new XMLHttpRequest();
xhr.open("POST", url_pedido, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
...
}
};
formData = new FormData();
formData.append("cliente", cliente);
formData.append("pedido", pedido);
xhr.send(formData);
}
I need build the data the controller will be reading by @ModelAttribute("pedido") Pedido pedido
in the variable pedido
.(我需要构建控制器将通过变量pedido
中的@ModelAttribute("pedido") Pedido pedido
读取的数据。)
Is this possible?(这可能吗?) If so, how I could do that?(如果是这样,我该怎么做?)
the fields need to be added to this object are:(需要添加到该对象的字段是:)
<div class="form" id="inner-form">
<div class="form-group">
<label for="transactionId">transactionId</label>
<input type="text" name="transactionId" class="form-control" id="transactionId">
</div>
<div class="form-group">
<label for="metodoPagamento">metodoPagamento</label>
<input type="text" name="metodoPagamento" class="form-control" id="metodoPagamento">
</div>
<div class="form-group">
<label for="dataCompra">dataCompra</label>
<input type="date" name="dataCompra" class="form-control" id="dataCompra">
</div>
<input th:if="${command}" type="hidden" name="cliente" th:value="${command.id}">
<div class="form-group">
<label for="produtos">produtos</label>
<select multiple="multiple" class="form-control" id="produtos" name="produtos">
<option th:each="option : ${produtos}" th:value="${option.id}" th:text="${option.nome}"></option>
</select>
</div>
</div>
UPDATE(更新)
I try this:(我尝试这样:)
var pedido = new FormData();
pedido.append('transactionId', document.getElementById('transactionId').value);
pedido.append('metodoPagamento', document.getElementById('metodoPagamento').value);
pedido.append('dataCompra', document.getElementById('dataCompra').value);
pedido.append('produtos', document.getElementById('produtos').value);
which I persistig an entity pedido
on the database, but with all the fields empty.(我在数据库上保留了一个实体pedido
,但所有字段均为空。)
Even in the javascript code, if I add this:(即使在javascript代码中,如果我添加以下代码:)
console.log(' transactionId: '+document.getElementById('transactionId').value);
console.log(' metodoPagamento: '+document.getElementById('metodoPagamento').value);
console.log(' dataCompra: '+document.getElementById('dataCompra').value);
console.log(' cliente: '+document.getElementById('cliente').value);
console.log(' produtos: '+document.getElementById('produtos').value);
only the fields dataCompra
and cliente
are getting the correct values.(只有字段dataCompra
和cliente
获得正确的值。)
The others are getting null
value.(其他正在获得null
值。) All with the html above.(全部带有上面的html。)
ask by Kleber Mota translate from so
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…