我有一个个人资料页面,我从不同的控制器获取值。
当我在任何控制器中使用mv.setViewName("User_Profile")
时,我只从JSP页面上的那个控制器获取值。
从任何一个控制器访问页面时,不会显示所有其他控制器的值。
如何让所有控制器的所有值都显示在页面上?
答案 0 :(得分:0)
您可以创建一个Spring MVC ControllerAdvice来设置公共属性:
通常是@ExceptionHandler,@ InitBinder和@ModelAttribute方法 在@Controller类(或类层次结构)中应用它们 声明在。如果您希望此类方法在全局范围内应用更多 控制器,您可以在标有的类中声明它们 @ControllerAdvice或@RestControllerAdvice。
因此,您创建了使用@ModelAttribute
注释的方法,以在您的建议中设置公共属性。
您可以将ControllerAdvice与特定控制器关联:
@ControllerAdvice(assignableTypes = {ProfileController1.class, ProfileController2.class})
public class ProfileControllerAdvice{
@ModelAttribute("someProperty")
public String getSomeProperty(){
return "I am can be accessed using ${someProperty} in the JSP.
}
}