当我从表单中的选择框中选择一个选项时,我希望每次选择更改时,获取表单的输入字段以填充上面选择的对象中的值。其目的是在创建后修改对象。我正在使用Spring MVC和Hibernate与JDBCTemplate。
listaProiecte is a List<Proiect>
以下是表格:
<form:form method="post" id="modifica" action="/modifica" commandName="proiect">
<div class="input-group col-md-12">
<div class="input-group col-md-12">
<div class="col-md-12"><br/></div>
<div class="col-md-12">
<span> </span>
<sform:select path="idProiect" id="idProiectSelect" cssClass="form-control input-sm">
<sform:option value="0" label="--- Select ---"/>
<c:forEach items="${listaProiecte}" var="proj">
<sform:option var="id" id="optiune" value="${proj.idProiect}" label="${proj.nrProiect} ${proj.numeProiect}"/>
</c:forEach>
</sform:select>
</div>
<div class="col-md-12"><br/></div>
<div class="col-md-12">
<span>Nume Proiect</span>
<sform:input path="numeProiect" id="numeProiectInput" cssClass="form-control input-sm"/>
</div>
<div class="col-md-12"><br/></div>
<div class="col-md-12">
<span>Numar Proiect</span>
<sform:input path="nrProiect" id="nrProiectInput" cssClass="form-control input-sm"/>
</div>
<div class="col-md-12"><br/></div>
<div class="col-md-12">
<span>An</span>
<sform:input path="an" id="anInput" cssClass="form-control input-sm"/>
</div>
<div class="col-md-12"><br/></div>
<div class="col-md-12">
<span>Client</span>
<sform:select path="idClient" id="idClientInput" cssClass="form-control input-sm">
<option value="0" label="--- Select ---"/>
<c:forEach items="${listaClienti}" var="clnt">
<sform:option value="${clnt.idClient}" label="${clnt.client}"/>
</c:forEach>
</sform:select>
</div>
<div class="col-md-12"><br/></div>
<div class="col-md-12">
<button type="submit" class="btn " id="btnMod">
Modifica Proiect
</button>
</div>
</div>
</div>
</form:form>
控制器:
@Qualifier("listaProiecteDAO")
@Autowired
private ListaProiecteJDBCDAO listaProiecteJDBCDAO;
@Qualifier("clientiDAO")
@Autowired
private ClientiJDBCDAO clientiJDBCDAO;
@RequestMapping(value = "/admin", method = RequestMethod.GET)
public String proiecte(ModelMap map) {
map.addAttribute("proiect", new ListaProiecte());
map.addAttribute("listaProiecte", listaProiecteJDBCDAO.getAll());
map.addAttribute("client", new Client());
map.addAttribute("listaClienti", clientiJDBCDAO.getAll());
return "admin";
}
@RequestMapping(value = "/modifica", method = RequestMethod.POST)
public String moddProiect(@ModelAttribute(value = "proiect") ListaProiecte proiect, BindingResult result) {
listaProiecteJDBCDAO.update(proiect);
return "redirect:/admin#modProj";
}
我试图在select:
的change()事件中使用JS $("#idProiectSelect").change(function(){
var id = $("#idProiectSelect").val();
$("#numeProiectInput").val(${listaProiecte[id].numeProiect});
$("#nrProiectInput").val(${listaProiecte[id].nrProiect);
$("#anInput").val(${listaProiecte[id].an);
$("#idClientInput").val(${listaProiecte[id].idClient);
});
显然,ecmascript中的EL并不起作用。这是一个什么解决方法? 如何使用选择框中的id作为我的List的参数?
答案 0 :(得分:0)
建议使用freemarker和下面提到的代码也是如此。
这将在服务端添加对象列表到模型对象。
@RequestMapping("/show")
public String showFeesPage(Model model){
model.addAttribute("batchlist", commonService.getBatchList());
model.addAttribute("feeslist", commonService.getFeesList());
return "fees";
}
下面提到的你将在freemarker页面中添加。
<#list batchlist as batch>
<option value="${batch.id}">${batch.batchName}</option>
</#list>