2011-12-07 12 views
5

Tworzę aplikację internetową z Struts2 i mam problem z mapowanymi akcjami działającymi z dowolnym adresem URL.Struts 2 - Mapowane akcje działające z dowolnym adresem URL

W moim pliku struts.xml skonfigurowałem pakiet o nazwie "/ registration" z kilkoma akcjami, z których głównym jest "register". Źródłem kontekstu mojej aplikacji jest "app/test".

Aby uzyskać dostęp do formularza rejestracyjnego, mogę przejść do "localhost: 8080/app/test/registration/register.action" i ładuje się mój formularz i działa świetnie.

Jednak, jeśli coś zostanie dodane do adresu URL po przestrzeni nazw, na przykład "localhost: 8080/app/test/registration/arbitrary/text/here/register.action", formularz jest nadal załadowany.

Chciałbym temu zapobiec, aby można było uzyskać dostęp tylko do właściwego adresu URL formularza. Wypróbowałem wiele różnych opcji konfiguracji w plikach struts.xml i web.xml bez żadnych rezultatów i nie mogę łatwo znaleźć wiedzy na ten temat w Internecie.

Każda pomoc zostanie doceniona, dzięki!

struts.xml

<struts> 
    <package name="myPackage" namespace="/registration" extends="struts-default"> 
     <result-types> 
      <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> 
     </result-types> 
     <action name="register" class="edu.uconn.test.action.RegistrationAction" method="input"> 
      <result name="input" type="tiles">/register.tiles</result> 
     </action> 
    </package> 
</struts> 

Odpowiedz

7

Ustaw struts.mapper.alwaysSelectFullNamespace stała się true:

<constant name="struts.mapper.alwaysSelectFullNamespace" value="true" /> 

To może mieć niezamierzone konsekwencje, gdy zwiększeniu wsparcia S2 dla dowolnych parametrów w adresach URL (np symboli wieloznacznych, dopasowywanie wzorca regex).

+0

Dzięki Dave! Zabawne jest to, że dałem dokumentację konfiguracyjną rozporek kilka rzutów oka, i całkowicie tęskniłem za tym. Bardzo doceniane niezależnie! –

+1

@ A.Cusano Jest trochę pogrzebany; Zrobiłem notatkę, żeby o tym wspomnieć w następnym wydaniu, więc dziękuję :) –

+0

@DaveNewton: To jest główny problem z struts2 mają ukrytą dokumentację :) –