У меня есть Java-код, который является контроллером для страницы JSP, называемый: HomeController.java. Код выглядит следующим образом:
@Controller
public class HomeController {
protected final transient Log log = LogFactory.getLog(getClass());
@RequestMapping(value = "/mypage")
public String home() {
System.out.println("HomeController: Passing through...");
return "home";
}
}
На странице jsp нет ничего особенного: home.jsp. Если я пойду по этому адресу:
http://localhost:8080/adcopyqueue/mypage
Я могу посмотреть мою страницу, и все работает нормально. Также на странице Dos кота я вижу комментарий:
HomeController: Passing through...
Как и ожидалось.
Теперь в том же каталоге, что и у меня HomeController.java, я создал еще один файл с именем: LoginController.java. Ниже приведен код:
@Controller
public class LoginController {
protected final transient Log log = LogFactory.getLog(getClass());
@RequestMapping(value = "/loginpage")
public String login() {
System.out.println("LoginController: Passing through...");
return "login";
}
}
И там же, где у меня есть home.jsp, я создал login.jsp.
Также в папках tomcat LoginController.class существует в той же папке, что и HomeController.class, и login.jsp в той же папке, в которой находится home.jsp.
Но когда я иду на этот URL: http://localhost:8080/adcopyqueue/loginpage
Ничего не отображается! Я думаю, что Tomcat не получает LoginController.class B / C в окне Dos Tomcat, я не вижу этот комментарий:
LoginController: Passing through...
Вместо этого я вижу следующее, что я не знаю, что они означают?
[ INFO] [http-8080-1 01:43:45] (AppInfo.java:populateAppInfo:34) got manifest
[ INFO] [http-8080-1 01:43:45] (AppInfo.java:populateAppInfo:36) manifest entrie
s 8
Структура и код для HomeController.java и LoginController.java плюс файлы jsp совпадают. Я понятия не имею, почему Tomcat видит один из файлов, а не другой?
Чистая сборка не помогла. У кого-нибудь есть идеи? Любая помощь с благодарностью.
Это часть файла web.xml: файл конфигурации:
<servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/app/*</url-pattern> </servlet-mapping> <filter-mapping> <filter-name>rewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> –
только что обнаружил:
Я изменил возвращаемое значение метода в LoginController из:
@RequestMapping(value = "/login")
К следующему:
@RequestMapping(value = "/myLastName")
И это просто сработало! Веб-страница выглядит как ожидалось, и в окне Tomcat Dos теперь я вижу этот комментарий:
LoginController: прохождение через ...
Я подозревал, что раньше называл имена, и пытался использовать "login", "loginpage" и "loginpage1", но ни один из них не работал! Понятия не имею, почему это происходит! Это проблема с любым именем со словом «логин» в нем! В конце концов это должно работать с "логином", хотя !!!
Еще одна вещь, которую я только что заметил:
LoginController НЕ будет работать, пока значение = "/ любое имя, начинающееся с логина"
Так, например, Логин, страница входа, ... не будет работать. Тем не менее, pagelogin работает, то есть имя не должно начинаться со слова: логин.