Не могу принять запрос весной - PullRequest
0 голосов
/ 06 мая 2018

У меня есть controller класс как этот

@Controller
@ComponentScan
@RequestMapping("/")
public class PrsService {

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

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

}

и классы конфигурации

@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {

    @Bean
       public InternalResourceViewResolver resolver() {
          InternalResourceViewResolver resolver = new InternalResourceViewResolver();
          resolver.setViewClass(JstlView.class);
          resolver.setPrefix("/WEB-INF/views/");
          resolver.setSuffix(".jsp");
          return resolver;
       }

       @Override
       public void addViewControllers(ViewControllerRegistry registry) {
         registry.addViewController("/login").setViewName("login");
       }

}

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
       protected Class<?>[] getRootConfigClasses() {
          return return null;
       }

       @Override
       protected Class<?>[] getServletConfigClasses() {
          return new Class[] { WebMvcConfig.class };
       }

       @Override
       protected String[] getServletMappings() {
          return new String[] { "/" };
       }

}

и мой login.jsp файл

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

У меня нет контента web.xml и sprint-servlet.xml Я просто хочу написать все на Java и с аннотациями.

Когда я отправляю запрос http://localhost:8080/springMvcApp/login он возвращает login.jsp, но когда я пытаюсь отправить запрос с http://localhost:8080/springMvcApp/loginTry и http://localhost:8080/springMvcApp/loginAction, я получаю HTTP Status 404 – Not Found ошибку, а Java говорит мне WARNING: No mapping found for HTTP request with URI [/springMvcApp/loginTry] in DispatcherServlet with name 'dispatcher' Разве я пропустили некоторые настройки или что не так в моем коде Когда я увидел примеры Google, они работают так же, как и я, но их код работает нормально: X P.S. Я новичок в SPRING

Ответы [ 3 ]

0 голосов
/ 06 мая 2018

Попробуйте это.

  1. Хотите знать, где вы определили свое @springbootapplication. Или @componentscan с правильным пакетом, определенным в поле значения. Надеюсь, он был настроен в Java-классе Spring Application.
  2. Как указано выше, вы использовали дополнительный "/" в @RequestMapping ("/"). Либо удалите его, либо добавьте после него какое-нибудь укус, скажите «/ api» и, соответственно, позвоните
  3. Удалите @componentscan в PrsService. Чувствует себя лишним.
0 голосов
/ 06 мая 2018

@ контроллер

@ComponentScan
@RequestMapping("/")
public class PrsService {

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

Это означает, что ваш URL http://localhost:8080//loginTryenter код здесь

0 голосов
/ 06 мая 2018

Похоже, что вы добавили дополнительный '/', поскольку вы используете RequestMapping на уровне класса и метода, а сейчас добавьте дополнительный '/' в свой URL (см. Ниже) и попробуйте, надеюсь, это поможет.

http://localhost:8080/springMvcApp//loginTry

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...