3
我是Spring MVC的新手,我試圖找出合適的方法去做一些我認爲非常簡單的事情。如何在使用Spring MVC的會話中保存字符串?
我有一個簡單的jQuery AJAX調用:
var dataString = 'existingProject='+ $("#existingProject").val() + '&newProjName=' + $("#newProjName").val();
$.ajax({
type: "POST",
url: "manageProjects.html",
data: dataString
});
我要將此用戶設置「項目」爲用戶的會話。這個AJAX調用來自JS文件中的一個javascript,並連接到我的Spring MVC控制器。
控制器正在獲取這些變量,但我不確定如何處理它以使該數據傳入會話特定。
我已經使用了這個主題,並且遇到了6個不同的選項(使用自動裝配注入Session scoped bean,使用xml config和cgl-nodep庫的Bean,HttpServlet屬性,@ModelAttribute,@SessionAttribute等等)。我嘗試着使用Session範圍的bean並定義如下:
@Component
@Scope("session")
public class UserSettings
...但是這個bean沒有被鎖定到會話中。我在我的控制器中使用了@Autowire,發現它在兩次會話之間仍然是相同的實例,所以我明顯地搞砸了它。
我只想保存一個嚇人的字符串!還有的必須是一個101級簡單的方法來做到這一點...
好吧,但我怎麼設定值時,我在AJAX調用啓動?對於在會話中設置屬性的AJAX調用有一個「處理程序」方法是適當的,那麼其他人只是將它拉回來?這是標準做法嗎? – Raevik 2012-03-20 16:51:36
沒有區別,只需將通過請求或會話放入您的ajax處理方法即可。 – fmucar 2012-03-20 17:07:16
我用你的第一個建議去使用HttpSession。我接受了AJAX調用並在會話中設置了屬性。然後,我在需要它的其他控制器操作中查找該值。 看起來這個屬性在會話中持續存在。我打開了一個新標籤並再次點擊該網站,第一個標籤中的設置已經在我的全新標籤中設置。 – Raevik 2012-03-20 17:08:09