@Pathvariable не найдена ошибка компиляции

1

Я пытаюсь выполнить проект Spring MVC с использованием Maven, но получить ошибку компиляции во время упаковки maven -

ошибка

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project CounterWebApp: Compilation failure
[ERROR] /home/prem1980/apache-maven/all_maven_projects/java_webapp_project/CounterWebApp/src/main/java/com/mkyong/controller/BaseController.java:[23,36] cannot find symbol
[ERROR] symbol  : class PathVariable
[ERROR] location: class com.mkyong.controller.BaseController

java файл

package com.mkyong.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/")
public class BaseController {

        @RequestMapping(value="/welcome", method = RequestMethod.GET)
        public String welcome(ModelMap model) {

                model.addAttribute("message", "Maven Web Project + Spring 3 MVC - welcome()");

                //Spring uses InternalResourceViewResolver and return back index.jsp
                return "index";

        }

        @RequestMapping(value="/welcome/{name}", method = RequestMethod.GET)
        public String welcomeName(@PathVariable String name, ModelMap model) {

                model.addAttribute("message", "Maven Web Project + Spring 3 MVC - " + name);
                return "index";

        }

}

Структура проекта

[pr@web449 CounterWebApp]$ tree .
.
├── pom.xml
├── src
│   └── main
│       ├── java
│       │   └── com
│       │       └── mkyong
│       │           └── controller
│       │               └── BaseController.java
│       ├── resources
│       └── webapp
│           └── WEB-INF
│               ├── index.jsp
│               ├── mvc-dispatcher-servlet.xml
│               └── web.xml
└── target
    ├── classes
    ├── generated-sources
    │   └── annotations
    └── maven-status
        └── maven-compiler-plugin
            └── compile
                └── default-compile
                    └── createdFiles.lst
Теги:
maven
spring

2 ответа

3
Лучший ответ

Добавить оператор импорта

import org.springframework.web.bind.annotation.PathVariable;
1

Я думаю, что вам не хватает фейерверка в вашем классе. В банке с пружинной сеткой содержится эта аннотация.

Убедитесь, что ваш pom.xml содержит:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>3.0.4.RELEASE</version>
</dependency>

Убедитесь, что у вас есть пружинная баня.

Если вы проверите, где находится org.springframework.web.bind.annotation.PathVariable вы обнаружите, что он находится внутри jar:

http://mvnrepository.com/artifact/org.springframework/spring-web/3.0.4.RELEASE

Конечно, версия jar может отличаться, просто убедитесь, что вы используете свою. Здесь вы можете найти версии весны-паутины:

http://mvnrepository.com/artifact/org.springframework/spring-web

И как указал Реймеус в своем ответе, вам нужен и импорт.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню