Ошибка с весенним сеансом [Невозможно предоставить атрибут сеанса 'user' из-за существующего объекта модели с тем же именем] - PullRequest
1 голос
/ 27 января 2011

Привет, я получаю следующую ошибку

javax.servlet.ServletException: Cannot expose session attribute 'user' because of an existing model object of the same name
    org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:141)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)

код

@Controller
@RequestMapping("/admin")
@SessionAttributes("user")
public class AdminHome {    
    @RequestMapping("home")
    public String homePage(HttpSession session, ModelMap map) {
        map.addAttribute(org.brahmaa.ads.util.impl.UserInfo.getPrincipal(session));
        return "admin/home";
    }
}

Ответы [ 2 ]

3 голосов
/ 16 сентября 2012

Я тоже внезапно получил это исключение.Оказывается, я добавил это свойство Freemarker:

<property name="exposeSessionAttributes" value="true"/>
1 голос
/ 27 января 2011

Насколько я понимаю, map.addAttribute(org.brahmaa.ads.util.impl.UserInfo.getPrincipal(session)); извлекает атрибут user из сеанса и помещает его в модель.@SessionAttriubtes инструктирует Spring делать то же самое автоматически.Поэтому они конфликтуют.Вы должны использовать только один из этих подходов, а не оба одновременно.

...