Spring MVC会话:预期的会话属性';用户';,已经在开会了
我正面临Spring MVC会话:预期的会话属性';用户';,已经在开会了,spring,session,Spring,Session,我正面临 org.springframework.web.HttpSessionRequiredException: Expected session attribute "Money" 以下是一系列步骤: 1) 用户从控制器获取一个页面:Finance/MoneyCreation @Controller @RequestMapping("/Finance/*") @SessionAttributes({ "Money", "MoneyForm"}) public class MoneyCon
org.springframework.web.HttpSessionRequiredException: Expected session attribute "Money"
以下是一系列步骤:
1) 用户从控制器获取一个页面:Finance/MoneyCreation
@Controller
@RequestMapping("/Finance/*")
@SessionAttributes({ "Money", "MoneyForm"})
public class MoneyController {
@RequestMapping(value = "MoneyCreation", method = RequestMethod.GET)
public String openMoneyLandingPage(@ModelAttribute("Money") Money money,
Model model) {
model.addAttribute("MoneyForm", form);
return "/okonomi/okonomiregister";
}
在上面的控制器中,会话属性Money没有在其他地方设置(这是必需的吗?)。现在,从UI中,我必须在单击按钮时打开一个对话框,该对话框执行以下操作:
AjaxController:财务/创建/货币
@Controller
@RequestMapping("/Finance/*")
@SessionAttributes({ "Money", "MoneyForm" })
public class AjaxMoneyController{
@RequestMapping(value = "create/money", method = RequestMethod.POST)
public String openDialogBox(@ModelAttribute("Money") User user, Model model) {
return "/commonProcess/dialog/MoneyDialog";
}
单击按钮;我面对:
org.springframework.web.HttpSessionRequiredException: Expected session attribute "Money"
是否需要在其他地方设置金钱?是的,在引用该属性之前,需要将其放入http会话中 引用非常好的Spring文档(你也应该研究一下!),你会看到一个阅读示例
if (!model.containsAttribute("site")) {
model.addAttribute("site", new PetSite());
}
“site”是SessionAttribute(在您的情况下类似于“money”)您需要在使用该对象之前将其加载到会话中。标准方法是使用
@modeldattribute
方法:
getMoney()
将在每次请求之前被调用。在UI中,我添加了conv id,这个问题得到了解决
var convId = $('#formId').find('input[name="_CONV_ID"]').val();
所以我将在MoneyController中执行此操作?尝试itI现在已经在openMoneyLandingPage()中添加了此代码->if(!model.containsAttribute(“bruker”){System.out.println(“added bruker”);model.addAttribute(“bruker”,bruker);……但它不起作用。}嗯,除了提到优秀的Spring文档之外,很难告诉您在您的情况下该怎么做,因为(至少对我来说)很难很好地了解您试图实现的目标。对不起,这肯定不是问题的解决方案。
var convId = $('#formId').find('input[name="_CONV_ID"]').val();