【问题标题】:spring MVC extended controllers don't resolvespring MVC 扩展控制器无法解决
【发布时间】:2013-01-27 08:55:53
【问题描述】:

我有以下几点:

@Controller
@RequestMapping("/admin")
public class AdminController extends BaseHtmlController{

    @Autowired
    protected DeviceCustomerMap deviceCustomerMap;

    @Autowired
    protected CustomerDao customerDao;

    String layout = "template/admin";

    @RequestMapping(value="/login", method = RequestMethod.GET)
    public String login(ModelMap model) {
        model.addAttribute("meta", meta);
        String view = "login";
        return view;
    }


}


public class AdminCustomerController extends AdminController{

    @RequestMapping(value="/customer/mapping", method = RequestMethod.GET)
    public String customerMapping(ModelMap model, @RequestParam(required=false) boolean refresh) throws Exception {
        if (refresh){
            deviceCustomerMap.initCustomerUrlMap();
        }
        model.addAttribute("meta", meta);
        model.addAttribute("view", "customer/mapping");
        model.addAttribute("customers", deviceCustomerMap.getCustomerMap());
        return layout;
    }
}

但是,扩展控制器不解析请求,但是当它们在基本控制器中时,它们被解析得很好,我已经研究了几个线程但找不到解决方案,知道吗?

【问题讨论】:

    标签: spring-mvc controller spring-annotations


    【解决方案1】:

    问题是在执行对/admin/login 资源的请求而不是对/admin/customer/mapping 资源的请求时,除非您将customerMapping() 方法移至AdminController 类,否则您是否能够得到响应?

    解决方案是使用@Controller 注释对AdminCustomerController 类进行注释。如果没有 stereotype 注释(和适当的组件扫描),Spring 将不会将该类识别为 Spring bean。

    【讨论】:

    • 如果我有多个继承自 AdminController 的类怎么办?
    • 每个控制器类都需要有自己的@Controller注解才能被Spring拾取。
    猜你喜欢
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2012-11-04
    • 1970-01-01
    相关资源
    最近更新 更多