Как сохранить строку в сеансе с Spring MVC? - PullRequest
3 голосов
/ 20 марта 2012

Я новичок в Spring MVC и пытаюсь найти подходящий способ сделать что-то, что, на мой взгляд, очень просто.

У меня есть простой вызов jQuery AJAX:

    var dataString = 'existingProject='+ $("#existingProject").val() + '&newProjName=' +      $("#newProjName").val();

    $.ajax({  
        type: "POST",  
        url: "manageProjects.html",  
        data: dataString            
    });

Я хочу установить для этого пользователя настройку «проект» для сеанса для пользователя. Этот AJAX-вызов происходит из JavaScript-файла в JS-файле и подключается к моему контроллеру Spring MVC.

Контроллер получает эти переменные, но я не уверен, что с ним делать, чтобы эти данные передавались в конкретном сеансе.

Я погуглил эту тему и наткнулся на 6 различных опций (внедренные bean-объекты Scope с автопроводкой, bean-компоненты с xml config и cgl-nodep, атрибуты HttpServlet, @ModelAttribute, @SessionAttribute и т. Д. И т. Д.) , Я попытался использовать сессионные компоненты и определил следующее:

@Component
@Scope("session")
public class UserSettings

... Но бин не был привязан к сеансу. Я использовал @Autowire в своем контроллере и обнаружил, что это был тот же самый экземпляр между сессиями, поэтому я явно облажался.

Я просто хочу сохранить одну чертову строку! Должен быть простой способ сделать это на 101 уровне ...

1 Ответ

10 голосов
/ 20 марта 2012
@RequestMapping(value = "/request/mapping")
public ModelAndView methodName(HttpSession session,...){

session.setAttribute("testVariable", "Test Values!!");
}

или

@RequestMapping("/test")
@Controller
public class TestController {
    @RequestMapping(method = RequestMethod.GET)
    public String testMestod(HttpServletRequest request)
    {
        request.getSession().setAttribute("testVariable", "Test Values!!");
        return "testJsp";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...