2012-08-23 12 views
5

Tôi gặp sự cố nếu tôi xóa phần mở rộng .action bên trong ứng dụng Struts2 của mình. Tôi đặt mã này vào số struts.xml:Tại sao danh sách tệp chào mừng không hoạt động nếu tôi xóa phần mở rộng struts2 .action?

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

Ứng dụng này hoạt động chính xác ngoại trừ trong trang chỉ mục. Tôi có trong web.xml tôi đây:

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

Khi tôi truy cập vào http://localhost/myApp/, tôi nhận được lỗi sau:

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

Tuy nhiên nếu tôi truy cập vào http://localhost/myApp/fooAction, tôi không nhận được bất kỳ lỗi nào và hoạt động hoàn hảo .

Nếu tôi thay đổi phần mở rộng cho phần mở rộng không trống (như "html"), tôi thấy trang chỉ mục hoàn hảo nếu tôi truy cập vào http://localhost/myApp/.

Vì vậy, có điều gì đó sai trong những gì tôi đang làm không? Tại sao tôi nhận được lỗi này khi tôi xóa tiện ích mở rộng? Có cách nào không thể nhận được nó?

Edit: Nếu tôi đặt một hành động trong <welcome-page> lỗi như sau:

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

thử chỉ mục '' – Jaiwo99

+0

Tôi bel Bộ lọc ieve S2 đang xử lý nó như một hành động. Tôi nhớ tôi đã gặp vấn đề tương tự khi tôi muốn '' làm hành động của mình và tôi đã xóa phần mở rộng như '.jsp' khỏi danh sách và tạo một tên tệp rỗng 'index' –

+0

Tôi đã chứng minh với một hành động trong' 'trước khi tôi đặt nó ở đây nhưng vì tôi đọc ở đây mà tôi không thể làm điều đó một cách trực tiếp (http: // stackoverflow.com/questions/39399/how-can-i-set-the-welcome-page-to-a-struts-action) Tôi đã không đặt ở đây. Tôi nhận được một lỗi khác, tôi sẽ đặt nó trong câu hỏi. – Pigueiras

Trả lời

8

Tôi đã có cùng một vấn đề trong một trong những ứng dụng nơi mà tôi cần phải gọi một hành động trên tải trang trong địa điểm của index.jsp hoặc welcom.jsp trong <welcome-page>. Tôi đã thực hiện các bước sau

Đặt mục nhập sau đây vào web.xml của tôi.

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

Tôi tạo ra một file trống với tên index trong thư mục ứng dụng web của tôi và cuối cùng là đặt các mục sau đây trong tập tin struts.xml tôi

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

Vì vậy, trong trường hợp này khi tôi đã đánh URL này www.myapp.com/myApp, hành động chỉ mục gọi của Struts2 và tôi đã có thể thực hiện tất cả công việc init cho trang chào mừng của tôi.

2

Tôi gặp sự cố tương tự nhưng đã được giải quyết !!!!
Nếu u sử dụng

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

trong struts.xml
sau đó đặt tập tin chào đón như

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

trong web.xml
và cung cấp cho các hành động trong struts.xml như sau

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