Skodziłem taki mały "prototyp":
HomeController:
@Controller
public class HomeController {
private SthService sthService;
@Autowired
public HomeController(SthService sthService) {
this.sthService = sthService;
}
@RequestMapping(value = {"/", "/home"})
public String showHomePage(@RequestParam(value = "napis", required = false, defaultValue = "nie podales parametru")
String napis, ModelMap model){
model.addAttribute("tekst", sthService.serviceGetString());
model.addAttribute("juzer", sthService.returnSomeUser());
model.addAttribute("napisik", napis);
return "home";
}
}
sthService to jakis tam prosty komponent @Service z 2 metodami zwracajacymi kolejno: stringa i User
I strona JSP:
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="content">
${tekst}
<br>${juzer.imie}
<br>${juzer.nazwisko}
<br>${juzer.wiek}
<br>
<br>${napisik}
</div>
</body>
</html>
I generalnie już rozumiem mniej-więcej jak to działa :) nadajesz się na nauczyciela @Shalom, ale programiście lepiej płacą haha
Tylko zastanawiam się jak przesłać obiekty osobno tak jak mówisz, nie już "spakowane" w mapie? pewnie jakoś za pomocą tej adnotacji @ModelAttribute? Jeśli użyje jej na argumencie metody:
public String showHomePage(@ModelAttribute("uzytkownik") User user, ModelMap model)
to wtedy do modelu (tylko pod jaką nazwą bedzie wtedy widniała mapa z tymi atrybutami) dodaje sobie kolejną wartość z kluczem(String): "uzytkownik" i wartością (Object - a dokładniej User) user?
Odnośnie Tiles - rozumiem ze ten framework robi tą samą robotę co Freemarker/Velocity/JSTL - tylko to po prostu kolejna propozycja? Gdzieś czytałem, ze "Tiles can be used with Freemarker and Velocity" i zastanawiam się czy czytałem prawde :P
#edit
tak właściwie to jeszcze nie napisałem pełnego prototypu, bo nie zrobiłem przesyłania formularza
dodanie znaczników <code class="html"> i <code class="java"> - Furious Programming