Witajcie,
na początku chciałęm się przywitać jako, iż jest to mój pierwszy post - więc WITAM :)
Od jakiegoś czasu jestem samoukiem Javy.
Mam pytanie ale za bardzo nie wiem jak to wytłumaczyć - spróbuje opisać.
Mam trzy kontrolery
@RequestMapping(name = "index")
public ModelAndView index(@ModelAttribute("atryb") Lek lek)
{
return new ModelAndView("index");
}
@RequestMapping(value = "/medicaments", method = RequestMethod.GET, headers="Accept=application/json")
public List<Medicament> getMedicaments()
{
return medicamentService.findAll();
}
@RequestMapping(name = "add", method = RequestMethod.POST)
public String add(@ModelAttribute("atryb") Lek lek)
{
System.out.println(lek.getName());
int id = Integer.parseInt(lek.getName().substring(lek.getName().lastIndexOf("id:") + 3, lek.getName().length()));
return "redirect:index";
}
index.jsp
<script type='text/javascript'>
$(window).load(function(){
var productNames = new Array();
var productIds = new Object();
$.getJSON('/aplikacja/medicaments',
function(data) {
$.each( data, function ( index, product )
{
productNames.push( product.name + " | " + product.producent + " | " + product.pack + " | " + product.kind + " | id:" + product.id);
//productNames.push( product.name );
productIds[product.name] = product.id;
} );
$( '#product' ).typeahead( {
limit:3,
source:productNames
} );
}
);
});
</script>
<form:form method="POST" action="/aplikacja/add" modelAttribute="atryb">
<table>
<tr>
<td>wybierz: </td>
<td><form:input path="name" id="product" /></td>
</tr>
<tr>
<td>...</td>
<td><input type="submit" value="Submit"/></td>
</tr>
</table>
</form:form>
W drugim kontrolerze pobieram listę pewnych objektów i przekazuję je do json, którego używam w index.jsp aby w formie pokazała się lista pobrana z bazy. Wyświetlam w liście dane z bazy razem z id i potem jak String przkaże się do kontrolera add to parsuję Stringa w celu wyciągnięcia id.
Czy jest jakiś sposób (pewnie jest : ) aby w formie widoczne były tylko nazwy obiektów i submit przekazał cały obiekt a nie tylko Stringa z pola?
Mam nadzieję, że wyjaśniłem to jasno i z góry dziękuję za odpowiedź.
PS. Skrypt dodający dane do wybrania z forma znaleziony w necie i przerobiony na potrzeby.