2012-08-23 10 views
5

Struts2 uygulamasındaki .action uzantısını kaldırırsam bir sorunum var. Ben benim struts.xml içinde koymak:Neden struts2 .action uzantısını kaldırırsam karşılama dosyası listesi çalışmıyor?

<constant 
    name="struts.action.extension" 
    value="" /> 

uygulama dizin sayfasına dışında düzgün çalışır. Ben benim web.xml var bu:

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

Ben http://localhost/myApp/ için erişirken, aşağıdaki hatayı alıyorum: Ben http://localhost/myApp/fooAction erişimi eğer herhangi bir hata alma ve mükemmel çalışıyor değilim, Ancak

There is no Action mapped for namespace [/] and 
action name [index.jsp] associated with context path [/myApp]. 
- [unknown location] 

.

Boş olmayan bir uzantının uzantısını değiştirirseniz ("html" gibi), http://localhost/myApp/'a eriştiğimde dizin sayfasını mükemmel görüyorum.

Öyleyse, yaptığım şeyde yanlış bir şey mi var? Uzantıyı kaldırdığımda neden bu hatayı alıyorum? Bunu elde etmenin herhangi bir yolu var mı?

Düzenleme: <welcome-page> hata içinde bir eylem koyarsanız şudur:

There is no Action mapped for namespace [/] and action name [] 
associated with context path [/myApp]. 
+0

'hoş geldiniz 'hoşgeldiniz dosyası> index' – Jaiwo99

+0

ieve S2 filtresi bir eylem olarak davranıyor.İşaret ettiğim yerdeki 'Hoşgeldin-Dosyası' 'nı istediğim yerde yaşadığımı hatırlıyorum ve' .jsp' gibi uzantıyı listeden çıkardım ve boş bir dosya adı oluşturdum. 'index' –

+0

Buraya koymadan önce ' adlı bir eylemle kanıtladım ama burada okuduğumdan beri bunu doğrudan yapamayacağım (http: // stackoverflow.com/questions/39399/nasıl-can-i-set-the-welcome-page-to-a-struts-action) Ben buraya koymadı. Farklı bir hata alıyorum, soruya koyacağım. – Pigueiras

cevap

8

Ben sayfa yüklendiğinde bir eylem çağırmanız gerekir uygulama alanlarından biri olan aynı sorunu yaşıyordu index.jsp ya da welcom.jsp'un <welcome-page> numaralı yerine getirildi. Aşağıdaki adımları gerçekleştirdim

Aşağıdaki girişi web.xml içine yerleştirdim.

<welcome-file-list> 
      <welcome-file>index</welcome-file> 
</welcome-file-list> 

benim web uygulaması klasöründeki adıyla index ile boş bir dosya oluşturulur ve ben bu URL'ye isabet zaman nihayet bu durumda

<action name="index" class="welcomeAction"> 
    <result>/ab.jsp</result> 
</action> 

Yani benim struts.xml dosyasında aşağıdaki girişi yerleştirilir www.myapp.com/myApp, onun Struts2 çağrı indeksi eylem ve ben hoşgeldiniz sayfam için tüm init çalışmaları yapabildi.

2

Aynı sorunu yaşadım ama çözdüm !!
u sonra Web.xml
yılında

<welcome-file>index.jsp</welcome-file> 

olarak karşılama dosyasını koymak ve

şöyle struts.xml harekete vermek struts.xml
yılında

<constant name="struts.action.extension" value=""/> 

kullanırsanız

<package name="default" extends="struts-default"> 
    <action name="index.jsp"> 
     <result>WEB-INF/login.jsp</result> 
    </action> 
</package> 
İlgili konular