Я пытаюсь преобразовать контроллеры из старой структуры наследования в новые аннотации.
Вот существующий контроллер:
public class SelectedTabController extends AbstractController {
private TabSelectionHelper tabSelectionHelper;
public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
String param = request.getParameter("selectedTab");
if (param != null)
tabSelectionHelper.setSelectedTabTo(param);
return null;
}
public void setTabSelectionHelper(TabSelectionHelper tabSelectionHelper) {
this.tabSelectionHelper = tabSelectionHelper;
}
И после преобразования у меня есть это:
@Controller
public class SelectedTabController {
private TabSelectionHelper tabSelectionHelper;
@Autowired
public SelectedTabController(@Qualifier(value = "tabSelectionHelper") TabSelectionHelper tabSelectionHelper) {
this.tabSelectionHelper = tabSelectionHelper;
}
@RequestMapping("/selectedTab")
public void selectTab(String selectedTab, HttpServletResponse response) throws Exception {
//String param = request.getParameter("selectedTab");
if (selectedTab != null)
tabSelectionHelper.setSelectedTabTo(selectedTab);
}
}
Это работает, но в списке параметров selectTab есть (избыточный) объект HttpServletResponse.Если я удаляю его, то вызов JQuery сообщает, что сервер возвращает 500, и вызов не выполняется.
Любая помощь?
Трассировка стека показывает:
javax.servlet.ServletException: Could not resolve view with name 'selectedTab' in servlet with name 'prodman'
Так что этопытается найти вид и терпит неудачу.Тем не менее, нет никакого представления для отображения в качестве его внутреннего вызова JQuery.
Я думаю, объявив объект ответа, Spring думает, что я напишу ответ.
Как я могу предотвратить попытки Springразрешить вид?