2012-06-08 29 views
7

tôi đang sử dụng Struts2. Tôi có một hộp thoại với danh sách những người cập nhật thông qua hành động "search_users". Bên cạnh danh sách này tôi có một biểu mẫu mà bạn có thể sử dụng để thêm người khác bằng cách gọi hành động "add_user" khi biểu mẫu được gửi.Tại sao tôi không thể chuyển hướng hành động đến một hành động khác trong Struts2?

Điều tôi đang cố làm là, khi hành động add_user được thực hiện, danh sách sẽ được cập nhật bằng hành động "search_user".

tôi đã cố gắng sử dụng các loại quả "chuyển hướng" trong struts.xml như thế này:

<action name="search_users" class="org.apache.struts.gestion_edt.controller.adm_proyectos.BLSubequipo" method="searchUsers"> 
      <result name="success">list.jsp</result> 
     </action> 

     <action name="add_user" class="org.apache.struts.gestion_edt.controller.adm_proyectos.BLTipoEntregable" method="addUser"> 
      <result name="success" type="redirectAction">search_users</result> 
     </action> 

Nhưng điều đó không làm việc. Tôi đang làm gì sai? Có cái gì tôi nên thêm vào tập tin struts.xml mà tôi không biết?

Đây là lỗi mesage tôi nhận được:

"Caused by: There is no result type defined for type 'redirect-action' mapped with name 'success'. Did you mean 'redirectAction'? - result - file:/.../struts.xml:59:44 
    at ..." 
+0

Bắt đầu từ Struts2.1x hoặc hành động chuyển hướng tương tự đã được thay đổi thành vỏ lạc đà như redirectAction, vấn đề bạn đã sử dụng redirectAction là gì?, Bạn cũng đang sử dụng phiên bản S2 nào? – mprabhat

+0

Phiên bản là 2.3.1.2. Vấn đề là dự án sẽ không xây dựng vì tệp struts.xml bị lỗi. Thông báo lỗi hiển thị chi tiết hơn một chút. –

+0

cho 2.3.1.2 chuyển hướngHành động là đúng – mprabhat

Trả lời

12

Cấu hình hiện tại:

<action name="add_user" class="org.apache.struts.gestion_edt.controller.adm_proyectos.BLTipoEntregable" method="addUser"> 
    <result name="success" type="redirectAction">search_users</result> 
</action> 

Theo documentation đúng định dạng là:

<action name="add_user" class="org.apache.struts.gestion_edt.controller.adm_proyectos.BLTipoEntregable" method="addUser"> 
    <result type="redirectAction"> 
     <param name="actionName">search_users</param> 
     <!--<param name="namespace">/secure</param> This is optional if your action where you are redirecting is in the same namespace you can leave this, if your action is in some other name space then provide the namespace--> 
    </result> 
</action> 
+0

Cảm ơn bạn! Điều đó đã giải quyết được vấn đề của tôi. Tôi đã thử nó theo cách đó nhưng sau đó tôi đã bao gồm các tham số gói mặc dù cả hai đều thuộc về cùng một gói. Tôi đánh giá cao sự giúp đỡ. –

+0

rất vui khi được giúp đỡ :) – mprabhat

+1

Làm thế nào để bạn nói với họ bạn đi đến chuyển hướng trên THÀNH CÔNG? – Madrugada

0

Tôi không phải là một anh chàng Struts lớn nhưng dựa trên các tài liệu có vẻ như chuyển hướng của bạn không đúng cú pháp: http://struts.apache.org/2.1.6/docs/redirect-action-result.html

<package name="public" extends="struts-default"> 
    <action name="login" class="..."> 
     <!-- Redirect to another namespace --> 
     <result type="redirect-action"> 
      <param name="actionName">dashboard</param> 
      <param name="namespace">/secure</param> 
     </result> 
    </action> 
</package> 
+0

Cảm ơn bạn, tôi vừa thử điều đó nhưng nó không hoạt động. Tôi sẽ chỉnh sửa bài đăng và thêm thông báo lỗi. –

+3

chuyển hướng hành động là cho các phiên bản cũ của Struts2, các phiên bản mới hơn sử dụng redirectAction (thay đổi trong quy ước tách các từ). Nếu không, ví dụ của bạn sẽ hoạt động tốt. –

2

Hiện đang sử dụng Struts 2.3.20, công trình này:

<result type="redirectAction">myAction</result> 

Tôi đã không được xác nhận trong các phiên bản trước.

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