Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp Spring多个控制器中的一个ModelAttribute_Jsp_Spring Mvc_Jspx_Apache Tiles - Fatal编程技术网

Jsp Spring多个控制器中的一个ModelAttribute

Jsp Spring多个控制器中的一个ModelAttribute,jsp,spring-mvc,jspx,apache-tiles,Jsp,Spring Mvc,Jspx,Apache Tiles,我在我的系统中使用SpringMVC+ApacheTiles+JSPX进行开发 我想把每个页面的登录表单。在登录过程中,我想使用@modelAttributeLoginModelLogindTo 在Spring docs页面中,我指出我必须在每个控制器中定义一个方法,我希望在其中显示该模型,如下所示: @ModelAttribute("loginModel") public LoginDTO loginModel() { return new LoginDTO(); } 有没有办法让我只

我在我的系统中使用SpringMVC+ApacheTiles+JSPX进行开发

我想把每个页面的登录表单。在登录过程中,我想使用@modelAttributeLoginModelLogindTo

在Spring docs页面中,我指出我必须在每个控制器中定义一个方法,我希望在其中显示该模型,如下所示:

@ModelAttribute("loginModel")
public LoginDTO loginModel() {
   return new LoginDTO();
}
有没有办法让我只定义一个控制器,并在我编写登录表单jsp的每个页面中工作


谢谢你的answare

您可以使用loginModel创建抽象控制器,并对每个要使用登录表单的控制器进行扩展,此抽象控制器应不带@controller,所有子类都必须包含@Controller。

您可以使用loginModel创建抽象控制器,并对每个要在其中使用登录表单的控制器进行扩展,此抽象控制器应不包含@Controller,所有子类都必须包含@Controller。

如果您使用的是Spring 3.2或更高版本,则可以使用新的注释。 根据以下文件:

@ModelAttribute方法也可以在@ControllerAdvice注释类中定义,并且此类方法适用于所有控制器。@ControllerAdvice注释是一种组件注释,允许通过类路径扫描自动检测实现类

在你的情况下,我猜它看起来像:

@ControllerAdvice
public class GlobalControllerAdvice {

    @ModelAttribute("loginModel")
    public LoginDTO loginModel() {
        return new LoginDTO();
    }
}

如果使用的是Spring 3.2或更高版本,则可以使用新注释。 根据以下文件:

@ModelAttribute方法也可以在@ControllerAdvice注释类中定义,并且此类方法适用于所有控制器。@ControllerAdvice注释是一种组件注释,允许通过类路径扫描自动检测实现类

在你的情况下,我猜它看起来像:

@ControllerAdvice
public class GlobalControllerAdvice {

    @ModelAttribute("loginModel")
    public LoginDTO loginModel() {
        return new LoginDTO();
    }
}

删除重复问题时投票重新打开删除重复问题时投票重新打开