在某些MVC框架中,如果您希望执行某些代码并呈现某些部分视图,则可以从视图中调用控制器操作.我不确定在Spring MVC中执行它的正确方法是什么
我想要一组JSP模板.其中一些将是页面布局,其中一些将是小组件,如分页器,登录框,菜单,标签云等等.这些组件中的每一个都需要一些bean或控制器操作来将一些数据设置到ViewAndModel中,以便视图可以使用它.
问题是我不想在每次调用中设置所有这些对象.我的注册管理员只关心注册处理.所以现在我该怎么做呢?如何从视图中调用DI bean或控制器以准备部分视图?或者我应该创建一些映射?或者我是从完全错误的角度来解决问题的?
我想我对spring mvc中的会话注释有点困惑.
我有这样的代码(2个步骤构成示例,第1步用户数据,第2步地址)
@SessionAttributes({"user", "address"})
public class UserFormController {
@RequestMapping(method = RequestMethod.GET)
public ModelAndView show( ModelAndView mv ){
mv.addObject( new User() );
mv.addObject( new Address() );
mv.setViewName("user_add_page");
return mv;
}
@RequestMapping(method = RequestMethod.POST)
public String processForm( User user, BindingResult result ){
new UserValidator().validate(user, result);
if( result.hasErrors() ){
return "user_add_page";
}else{
return "redirect:/user_form/user_add_address";
}
// .........
}
Run Code Online (Sandbox Code Playgroud)
现在如果我在会话结束后提交页面,我会收到错误
org.springframework.web.HttpSessionRequiredException:会话属性'user'required - 在session中找不到
我该如何处理?我想有2个选择
我仍然处于学习Spring的早期阶段,很抱歉,如果它非常明显,我就是无法看到它.
PS.即使是在春季mvc解决这种形式的好方法,还是你会推荐不同的方法?