2008-09-15 30 views
7

Trong một định nghĩa dòng chảy, tôi đang cố gắng để truy cập vào một bean mà có một dấu chấm trong ID của nóTruy cập vào một bean với một dấu chấm trong ID của nó

(ví dụ (.): <evaluate expression="bus.MyServiceFacade.someAction()" />

Tuy nhiên, nó không SWF không cố gắng tìm một "chiếc xe buýt" thay thế

Ban đầu, tôi đã vượt qua nó bằng cách sử dụng một hạt trợ giúp để tải đậu cần thiết, nhưng giải pháp là không phù hợp và không thoải mái. cũng ra khỏi câu hỏi vì đậu là một phần của một hệ thống lớn và tôi không thể làm xáo trộn chúng.

Tóm lại, không có giải pháp nào cho phép tôi trực tiếp giới thiệu hạt bằng cách sử dụng tên ban đầu của nó. Điều đó thậm chí có thể có trong bản phát hành SWF hiện tại không?

+0

Bạn đã tìm thấy giải pháp chưa? – lud0h

Trả lời

1

Đây là hạn chế của trình phân tích cú pháp EL (thường là OGNL hoặc jboss-el cho Spring Web Flow). EL sử dụng ký pháp chấm để phân tích cú pháp chuỗi điều hướng, gây ra hành vi ban đầu mà bạn mô tả (cố gắng tìm bean "bus").

-1

Theo kinh nghiệm của tôi, bất kỳ thứ gì có phương thức getter đều có thể được truy cập thông qua ký hiệu chấm. Trong ví dụ của bạn, bất kỳ đối tượng nào đang được đại diện bởi hạt bus cần phải có phương thức getServiceFacade và đối tượng được trả về bởi getServiceFacade sẽ cần phải có phương thức getSomeAction.

0

Hãy thử:.

[ 'bus.MyServiceFacade'] someAction()

hoặc

'bus.MyServiceFacade'.someAction()

Điều này có thể làm việc, hoặc nó có thể không ... nhưng những thứ tương tự được sử dụng trong ngôn ngữ biểu thức cho JSP.

+0

Tôi đã thử cả hai đề xuất nhưng không có kết quả – Arnelism

7

Tôi có thể thực hiện việc này bằng cách sử dụng cả biểu tượng công cụ truy cập đậu (@) và dấu nháy đơn xung quanh tên của bean.

Sử dụng ví dụ của bạn: #{@'bus.MyServiceFacade'.someAction()}

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