2011-12-07 32 views
5

Tôi đang tạo một ứng dụng web với Struts2 và tôi đang gặp sự cố với các tác vụ được ánh xạ hoạt động với bất kỳ url nào.Struts 2 - Tác vụ được ánh xạ hoạt động với bất kỳ URL nào

Trong tệp struts.xml của mình, tôi đã định cấu hình gói có không gian tên là "/ registration" với một vài thao tác, với thao tác chính là "đăng ký". Bối cảnh gốc của ứng dụng của tôi là "app/test".

Để truy cập biểu mẫu đăng ký, tôi có thể truy cập "localhost: 8080/app/test/registration/register.action" và nó tải lên biểu mẫu của tôi và hoạt động tốt.

Tuy nhiên, nếu mọi thứ được thêm vào URL sau không gian tên, chẳng hạn như "localhost: 8080/app/test/registration/arbitrary/text/here/register.action", biểu mẫu vẫn được tải lên.

Tôi muốn ngăn điều này xảy ra, do đó bạn chỉ có thể truy cập biểu mẫu URL thích hợp. Tôi đã thử nhiều tùy chọn cấu hình khác nhau trong struts.xml và web.xml không có kết quả, và tôi không thể tìm thấy kiến ​​thức về vấn đề này dễ dàng trên web.

Bất kỳ trợ giúp nào sẽ được đánh giá cao, cảm ơn!

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> 

Trả lời

7

Đặt struts.mapper.alwaysSelectFullNamespace liên tục để true:

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

Điều này có thể có những hậu quả ngoài ý muốn khi tận dụng hỗ trợ S2 cho thông số tùy ý trong URL (ví dụ, wildcarding, mẫu biểu thức chính phù hợp).

+0

Cảm ơn Dave! Điều thú vị là tôi đã cung cấp cho các tài liệu cấu hình thanh chống một vài lướt qua, và hoàn toàn bị mất này. Nhiều đánh giá cao bất kể! –

+1

@ A.Cusano Hơi bị chôn vùi; Tôi đã viết một lưu ý để đề cập đến nó trong bản phát hành tiếp theo ở đâu đó, vì vậy cảm ơn :) –

+0

@DaveNewton: Đó là vấn đề chính với struts2 có tài liệu ẩn :) –

Các vấn đề liên quan