13

Spring MVCで次のことができますか

次のように、1 つのリクエスト マッピング "/list" を持つ Base GenericController があるとします。

@Controller
public class GenericController<T>{

    @RequestMapping(method = RequestMethod.GET, value = "/list")
    public @ResponseBody List<T> getMyPage(){
        // returns list of T
    }

}

以下は私の2つのコントローラーです

@Controller(value = "/page1")
public class Page1Controller extends GenericController<Page1>{

}

@Controller(value = "/page2")
public class Page2Controller extends GenericController<Page2>{

}

これで、「/page1/list」と「/page2/list」という URL にアクセスできるようになります。最初は Page1Controller に行き、2 つ目は Page2Controller に行きます。

4

2 に答える 2

14

それは不可能であり、すでに拒否されています。 SPR-10089を参照してください。これはやや混乱を招くと思います。さらに、マッピングが異なるだけで、これらのメソッドがまったく同じように動作する可能性はほとんどありません。ただし、代わりに委任を使用できます。

public class BaseController<T> {
    public List<T> getPageList(){
        // returns list of T
    }
}

@Controller(value = "/page1")
public class Page1Controller extends BaseController<Page1>{
    @RequestMapping(method = RequestMethod.GET, value = "/list")
    public @ResponseBody List<Page1> getMyPage() {
      return super.getPageList();
    }    
}

@Controller(value = "/page2")
public class Page2Controller extends BaseController<Page2>{
    @RequestMapping(method = RequestMethod.GET, value = "/list")
    public @ResponseBody List<Page2> getMyPage() {
      return super.getPageList();
    }
}
于 2013-04-17T15:44:20.893 に答える
8

Spring Framework 4.x に似たものを探している人には、OP によって提供されるクラス階層が可能です。サンプル アプリケーションはGithubで入手できます。本のリストや雑誌のリストを JSON として表示できます。

于 2015-11-16T05:20:49.840 に答える