Witam,
Mam problem ponieważ chciałem zrobi stronę jsp z kilkoma zakładkami. Na każdej zakładce miał by inny formularz ... i tu pojawił się problem.
Jako że strona będzie jedna a zakładki chciałem aby działały na zasadzie ukrywana DIV - pojawił się problem ze zdefiniowaniem kontrolera dla danej strony.
Strona userTab.jsp wygląda mniej więcej tak:
<div id="container">
<ul id="bookmarks">
<li class="active"><a href="userTab.htm#1" class="bar1">UserPrv</a></li>
<li class="active"><a href="userTab.htm#2" class="bar2">UserFirm</a></li>
</ul>
<div id="content">
<div id="bar1">
<form:form method="POST" action="userTab.htm"
commandName="userDTO">
<table>
<tr>
<td><b><spring:message code="userList.label.userName" />
</b>
</td>
<td><form:input path="userName" /> <form:errors
path="userName" cssClass="error" /></td>
</tr>
...
<tr>
<td colspan="2"><input type="submit">
</td>
</tr>
</table>
</form:form>
</div>
<div id="bar2">
<form:form method="POST" action="userTab.htm"
commandName="userFirm">
<table>
<tr>
<td><b><spring:message code="userList.label.userName" />
</b></td>
<td><form:input path="userName" /> <form:errors
path="userName" cssClass="error" /></td>
</tr>
...
<tr>
<td colspan="2"><input type="submit">
</td>
</tr>
</table>
</form:form>
</div>
</div>
</div>
Chciałem zdefiniowac Controller:
@RequestMapping(method = RequestMethod.GET, value = "/userTab.htm")
public String initUserPrvBaseDataForm(final ModelMap model) {
// model.put("users", userService.findAllUsersFirm());
UserDTO user = new UserDTO();
model.addAttribute(user);
return "userTab";
}
@RequestMapping(method = RequestMethod.POST, value = "/userTab.htm")
public String saveUserPrvBaseData(@ModelAttribute("userPrvDTO") UserPrvDTO userPrvDTO,
BindingResult result) {
...
userService.saveUser(user);
...
return "redirect:userTabPanel.htm";
}
@RequestMapping(method = RequestMethod.GET, value = "/userTab.htm")
public String initUserFirmBaseDataForm(final ModelMap model) {
UserFirm user = new UserFirm();
model.addAttribute(user);
return "userTab";
}
@RequestMapping(method = RequestMethod.POST, value = "/userTab.htm")
public String saveUserFirmBaseData(@ModelAttribute("userFirm") UserFirm user,
BindingResult result) {
...
userService.saveUser(user);
...
return "redirect:userTabPanel.htm";
}
Przy próbie wyświetlenia strony jsp dostaję komunikat:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path '/userTab.htm': {public java.lang.String eu.ze....controller.user.UserTabPanelController.initUserPrvBaseDataForm(org.springframework.ui.ModelMap), public java.lang.String eu.ze....controller.user.UserTabPanelController.initUserFirmBaseDataForm(org.springframework.ui.ModelMap)}. If you intend to handle the same path in multiple methods, then factor them out into a dedicated handler class with that path mapped at the type level!
Czy może mi ktoś podpowiedzie jak rozwiąza ten problem - lub może ma ktoś lepszy pomysł jak zrealizowa coś podobnego??
Zaznaczam że googlełem jednak niewiele mi to dało.
Będę bardzo wdzięczny.