Я действительно ломаю голову над Struts2 - я могу получить доступ к страницам JSP, пропустив часть пути. Обратите внимание на путь, который предполагается включить pages/welcome_user.jsp
. Ключ - смотреть на слово pages
в пути.
Вот файл struts.xml
:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" namespace="/User" extends="struts-default">
<action name="Login">
<result>pages/login.jsp</result>
</action>
<action name="Welcome" class="com.mkyong.user.action.WelcomeUserAction">
<result name="SUCCESS">pages/welcome_user.jsp</result>
</action>
</package>
</struts>
Я могу получить доступ к login.jsp
через: http://localhost/Struts2Example/User/Login
и welcome_user.jsp
через: http://localhost/Struts2Example/User/Welcome
Обратите внимание, что в обоих URL я могу опустить pages
, почему?
Источник: http://www.mkyong.com/misc/how-to- use-mkyong-tutorial /
Может ли кто-нибудь пройти через вышеприведенное руководство и сказать мне, что не так?
1 ответ
Во-первых, вы использовали URL-адреса, которые сопоставлены действиям в struts.xml
.
Метод действия выполняется и возвращает код результата SUCCESS
. Этот результат вы можете найти в файле config. Затем выполняется результат, если тип результата не установлен, по умолчанию используется dispatcher
, и запрос перенаправляется в место, указанное в конфигурации результата.
Если местоположение является относительным, окончательное абсолютное местоположение будет определяться пространством имен пакета, используемого для этого действия.
Более подробный пример использования пространств имен и объяснение вы можете найти в примере Пример и объяснение конфигурации пространства имен Struts 2.
Вы не можете отбрасывать страницы, если используете результат dispatcher
, который пересылается в JSP. В этом случае URL-адрес был переписан, и вы не можете увидеть конечный URL-адрес.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.