2011-12-07 4 views
5

Sto creando un'app Web con Struts2 e sto riscontrando un problema con le azioni mappate che funzionano con qualsiasi URL.Struts 2 - Azioni mappate che funzionano con qualsiasi URL

Nel file struts.xml, ho configurato un pacchetto con uno spazio dei nomi di "/ registration" con alcune azioni, con il principale "register". La root di contesto della mia app è "app/test".

Per accedere al modulo di registrazione, posso andare su "localhost: 8080/app/test/registration/register.action" e carica il mio modulo e funziona alla grande.

Tuttavia, se qualcosa viene aggiunto all'URL dopo lo spazio dei nomi, ad esempio "localhost: 8080/app/test/registration/arbitrary/text/here/register.action", il modulo è ancora caricato.

Vorrei impedire che ciò accada, in modo che sia possibile accedere al modulo solo all'URL appropriato. Ho provato molte diverse opzioni di configurazione in struts.xml e web.xml senza alcun risultato, e non riesco a trovare facilmente la conoscenza di questo problema sul web.

Qualsiasi aiuto sarà apprezzato, grazie!

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> 

risposta

7

Impostare la struts.mapper.alwaysSelectFullNamespace costante true:

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

Ciò può avere conseguenze indesiderate quando sfruttando il supporto di S2 per i parametri arbitrari negli URL (ad esempio, caratteri jolly, regex corrispondenza).

+0

Grazie Dave! La cosa buffa è che ho dato alla documentazione di configurazione dei montanti qualche sguardo oltre, e mi sono completamente perso. Molto apprezzato a prescindere! –

+1

@ A.Cusano È un po 'sepolto; Ho fatto una nota per dirlo nella prossima versione da qualche parte, quindi grazie :) –

+0

@DaveNewton: Questo è il problema principale con struts2 hanno documentazione nascosta :) –