2014-12-18 12 views
1

У меня проблема с загрузкой страницы. Я определил в struts.xml (находится в Java ресурсов/SRC/com.infopool.action) следующей конфигурации:Контроллер не совпадает с адресом

<struts> 
    <package name="demo" namespace="/demo" extends="struts-default"> 
     <action name="Inicio" class="com.infopool.action.Demo"> 
      <result name="success">/View/demo/start.jsp</result> 
     </action> 
     <action name="Hola" class="com.infopool.action.Demo" method="hello"> 
      <result name="success">/View/demo/hello.jsp</result> 
     </action> 
     <action name="Chau" class="com.infopool.action.Demo" method="goodbye"> 
      <result name="success">/View/demo/goodbye.jsp</result> 
     </action> 
    </package> 
</struts> 

Так, в пакете com.infopool.action у меня есть следующий класс, определенный:

package com.infopool.action; 

    public class Demo { 

     public String execute(){ 
      return "success"; 
     } 

     public String hello(){ 
      return "success"; 
     } 

     public String goodbye(){ 
      return "success"; 
     } 

    } 

Представления находятся в WebContent/View/demo. Когда я пытаюсь просмотреть страницу, появляется ошибка 404 Tomcat. URL является:

http://localhost:8080/Infopool/demo/Inicio.action

Моя web.xml имеют следующую конфигурацию:

<filter> 
    <filter-name>Main</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
    <init-param> 
     <param-name>actionPackages</param-name> 
     <param-value>com.infopool.action</param-value> 
    </init-param> 
    </filter> 

    <filter-mapping> 
    <filter-name>Main</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

Что не так с моей конфигурации?.

+0

вы видите какие-либо ошибки во время работы вашего веб-приложение? – Secondo

+0

'' поместите его после вашего ''. это позволит devMode для вас увидеть некоторые полезные сообщения журнала – Secondo

+0

В консоли не отображаются ошибки. Я обновляю сообщение с помощью конфигурации web.xml. – ramiromd

ответ

1

использование этого является то, чтобы передать пакет действий, где все классы действий были объявлен

<init-param> 
    <param-name>actionPackages</param-name> 
    <param-value>com.infopool.action</param-value> 
</init-param> 

но ваш Demo класс действия оленьей кожи иметь любую конфигурацию, аннотации, как (если им не ошибается.)

@Namespace("/demo") 
@Action("/Inicio") 
@ResultPath(value="/") 
@Result(name="success",location="/View/demo/start.jsp") 
public class Demo { 
.... 

Вы использовали другой способ по настройке класса действий, который ваш struts.xml

<struts> 
    <package name="demo" namespace="/demo" extends="struts-default"> 
     <action name="Inicio" class="com.infopool.action.Demo"> 
      <result name="success">/View/demo/start.jsp</result> 
     </action> 
     <action name="Hola" class="com.infopool.action.Demo" method="hello"> 
      <result name="success">/View/demo/hello.jsp</result> 
     </action> 
     <action name="Chau" class="com.infopool.action.Demo" method="goodbye"> 
      <result name="success">/View/demo/goodbye.jsp</result> 
     </action> 
    </package> 
</struts> 

поэтому нет необходимости объявлять/создать это,

<init-param> 
    <param-name>actionPackages</param-name> 
    <param-value>com.infopool.action</param-value> 
</init-param> 

внутри вашего распорок фильтра.

#1 look at this : Providing an init-parameter in struts filter

#2 see this sample : struts2 annotation

+0

Кроме того, нет необходимости объявлять вторую. –

+0

привет, сэр, рад слышать ваши мысли, что вы подразумеваете под «вторым»? :) – Secondo

+1

Я имею в виду конфигурацию аннотаций. Это не предусмотрено XWork, а не базовая конфигурация. Также он не используется OP. –