Можем ли мы вызвать @RequestMapping из пути родительского класса, когда дочерний класс расширяет его в Spring MVC? - PullRequest
0 голосов
/ 09 мая 2020

В интервью мне задали вопрос; Предположим, у вас есть дочерний контроллер, который расширяет родительский контроллер, как в приведенном ниже коде, и мы хотим получить доступ к методу родительского класса @RequestMapping. Мы можем это сделать? Там в любом случае?

Когда я пробовал код ниже и нажимал ссылку BaseHello, я получаю предупреждение. И если я напишу @Controller в родительском классе, то появится такое же предупреждение

May 09, 2020 2:18:53 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping for GET /Projectname/parent/hello

Parent. java

package com.practice;

@RequestMapping("/parent")
public abstract class Parent {
    @RequestMapping("/hello")
    public String world() {
        return "hellopage";
    }
}

Детский. java

package com.practice;
@Controller
@RequestMapping("/child")
public class Child extends Parent {
    @RequestMapping("/detail")
    public String info() {
        return "detailpage";
    }
}

индекс. jsp

<a href="parent/hello">BaseHello</a>
<a href="child/hello">ChildHello </a>
<a href="child/details">ChildDetails</a>

1 Ответ

0 голосов
/ 09 мая 2020

Может сработает:


//@RequestMapping("/parent") remove conflicts child path
public abstract class Parent {
    @RequestMapping("parent/hello")
    public String world() {
        return "hellopage";
    }}

@Controller 
// @RequestMapping("/child") // remove this, add child to the method, because abstract class already have one.
public class Child extends Parent {
    @RequestMapping("/child/detail")
    public String info() {
        return "detailpage";
    }}

...