У меня есть контроллер с двумя методами рендеринга, которые принимают разные аргументы:
class MyController
{
@RenderMapping
public void render(@ModelAttribute ClassX param)
{
// do some stuff
}
@RenderMapping
public void render2(@ModelAttribute ClassY param)
{
// do different stuff
}
}
Конечно, в приведенном выше примере отсутствует некоторая спецификация для весны, чтобы знать, какой из методов рендеринга вызывать.Мне нужно решить это на основе состояния, сохраненного в текущем сеансе.Я не могу указать это просто как простую аннотацию, не так ли?
Альтернативная идея выглядит примерно так:
class MyController2
{
@RenderMapping
public void render(RenderRequest request)
{
if (request.getPortletSession().getAttribute(...) ...)
{
ClassX param = retrieveObjectFromRequest(ClassX.class, request);
// do some stuff
}
else
{
ClassY param = retrieveObjectFromRequest(ClassY.class, request);
// do different stuff
}
}
}
Но в этом случае ... Как реализоватьretrieveObjectFromRequest
метод?