2014-01-28 2 views
1

Я новичок в расположении, поэтому я знаю значение «/» в пространстве имен пакета. т.е. , когда я кладу имен как "/ Home"Что означает «/» в атрибуте пространства имен элемента пакета в struts.xml?

<package name="base" namespace="/Home" extends="struts-default"> 
      <action name="HelloWorld" class="controller.HelloWorld"> 
       <result>/message.jsp</result> 
      </action> 
    </package> 

и введите этот URL: "локальный: 8080/Struts2Example/Главная/HelloWorld.action" в браузере, а затем открывает страницу.

, но когда я меняю пространство имен на «Главная», тогда он дает «Ошибка: 404».

Так что это означает «/»?

+0

Как вы думаете, мы можем увидеть что-то на "локальном хосте: 8080" ? Я не запускаю tomcat. И пространство имен является корневым пространством имен. И STRUTS, а не struCts –

ответ

1

От Struts Руководство http://download.oracle.com/otn_hosted_doc/jdeveloper/j2ee101302/working_with_struts/f1_struts_ide/f1_strutsconfigactionmappings.html

и здесь

http://struts.apache.org/release/2.1.x/docs/namespace-configuration.html 

Запрос URI путь, который, при приеме сервлета контроллера действия Struts, вызывает отображение действий. The path name is a relative path and must include the forward slash (/).

+0

Большое спасибо. Я понял. – SeeTheC

1

Присвойте 101 на пространствах имен. Прежде всего вам нужно иметь в виду, что пространство имен не является файловым путем.

Coming к тому, что пространство имен делает: Что происходит, что, когда пользователь нажимает запрос на доступ к веб-приложение распорок, это URL расщепляется в имя хоста, имя порта, имя контекста сервлета, пространства имен (если таковые имеются) и действие распорок.

Ex. : localhost: 8080/myapp/discountModule/getPrice.action

Пространство имен делит конфигурацию действий на логические модули. Например, если запрашивается URL /foo/myfoo/myfooaction.action, структура сначала будет искать пространство имен/foo/myfoo. Если действие не существует в/foo/myfoo, поиск сразу же возвращается к пространству имен по умолчанию "". Структура не будет анализировать пространство имен в ряд «папок».

Так что, когда мы используем имена пространств пространство имен очень полезно в больших веб-приложений, которые должны seprated в небольших доменов или модулей. Например, можно сказать, что вы управляете бэкэнд корзины покупок, и у этого есть 4 основных раздела - ADMIN, ORDERS, SALES & REFUNDS

Как описано ранее, пространство имен определено внутри тега, используя атрибут пространства имен. Для того, чтобы определить эти четыре домена, четыре тега будет определяться с их спецификацией пространства имен следующим образом:

Ex - локальный: 8080/вашего сайта!/Администратор/doSomeAdmin.action

Remeber - ЭТО НЕ MANADTORY ИСПОЛЬЗОВАТЬ NAMESPACE.

Struts документация имеет несколько примеров - http://struts.apache.org/release/2.1.x/docs/namespace-configuration.html

0

Добавление к user1428716 только "/" определяет имя корневого пространства.

<package name="base" namespace="/e" extends="struts-default"> 
      <action name="HelloWorld" class="controller.HelloWorld"> 
       <result>/message.jsp</result> 
      </action> 
    </package> 

корень: "http://localhost:8080/Struts2Example/" поэтому URL является "http://localhost:8080/Struts2Example/HelloWorld.action"

и когда мы упоминаем "/namespacename", то это означает "~root/namespaceName/your.action"

Смежные вопросы