Controller cấu hình là câu trả lời cho vấn đề Controller Fat. Trong một Controller Fat, những lập trình viên có thể code "if" ngăn chặn trên nền tảng cần thiết. Không nên có các bộ điều khiển cấu hình. Khả năng diễn đạt và cấu hình được giới hạn những gì được xây dựng trong Controller có thể hỗ trợ. Trong Struts, tích hợp Controller hỗ trợ một loạt trong trường hợp có thể phát sinh trong khi phát triển ứng dụng web. Nó thậm chí còn cung cấp điểm cho mở rộng khả năng cấu hình. Những quan điểm này được gọi là điểm mở rộng, đi configurationcapability cho kích thước tới. Trong hướng dẫn này, chúng tôi chỉ sẽ xem xét những phương tiện thông thường được cung cấp bởi struts-config.xml này.
Các file cấu hình Struts tuân thủ các Struts-config_1_1.dtd. Các Struts config dtd có thể được tìm thấy trong phân phối Struts trong thư mục lib. Nó cho thấy mọi phần tử có thể, thuộc tính của họ và mô tả của họ. Bao gồm tất cả chúng cùng một lúc sẽ chỉ dẫn đến tình trạng quá tải thông tin. Do đó chúng tôi sẽ chỉ nhìn vào năm phần quan trọng trong tập tin này liên quan cho cuộc thảo luận của chúng ta và các thuộc tính quan trọng của họ.
Năm phần quan trọng là :
- Form bean
- Global forward
- Action mapping
- Controller configuration
- Application Resources
Ví dụ dưới đây cho thấy một mẫu file Struts Config hiển thị tất cả năm phần. Các Form định nghĩa mục bean có chứa một hoặc nhiều mục cho mỗi ActionForm. Mỗi Form bean được xác định bởi một tên hợp lý duy nhất. Loại là tên lớp đầy đủ trong ActionForm. Một thú vị là bạn có thể khai báo những class cùng ActionForm bất kỳ số lần cung cấp mỗi mục có một tên duy nhất liên kết với nó. Tính năng này rất hữu ích nếu bạn muốn lưu trữ nhiều form cùng loại trong servlet session .
Path : Các đường dẫn URL (có thể ánh xạ hoặc ánh xạ đường hậu tố) mà Action mapping này được sử dụng. Những đường dẫn nên là duy nhất
Type : Tên class đầy đủ của Action
Name : Tên hợp lý trong những bean Form. Các ActionForm thực tế kết hợp với bản đồ Action này được tìm thấy bằng cách tìm kiếm trong phần định nghĩa Form-bean cho một hạt đậu Form với tên phù hợp. Điều này thông báo cho những ứng dụng Struts mà hành động nên sử dụng ánh xạ mà ActionForms.
Scope : Phạm vi của các bean Form - Có thể được session hoặc yêu cầu
Validate : Có thể đúng hoặc sai. Khi đúng, bean Form được xác nhận về trình. Nếu sai, việc xác nhận là bỏ qua.
Input : Trang vật lý (hoặc một ActionMapping) mà kiểm soát nên được chuyển tiếp khi có lỗi tồn tại trong những bean hình thành.
Forward : Trang vật lý (hoặc một ActionMapping) mà kiểm soát nên được chuyển tiếp khi ActionForward với tên này được chọn trong những phương pháp thực hiện trong lớp Action.
Phần ActionMapping chứa ánh xạ từ đường dẫn URL cho một class Action (và cũng có thể liên kết một bean Form có đường dẫn). Các loại thuộc tính là tên lớp đầy đủ trong những Action liên quan. Mỗi nhập hành động trong những-ánh xạ hành động cần phải có một con đường duy nhất. Điều này sau từ thực tế là mỗi đường dẫn URL cần một xử lý độc đáo. Không có cơ sở cho Actions liên kết nhiều có cùng một con đường. Các tên thuộc tính là tên trong những bean Form liên quan đến Action này. Các Form bean thực tế được xác định trong mục Form định nghĩa bean. Bảng trên cho thấy tất cả những thuộc tính liên quan thảo luận cho đến nay cho những nhập hành động trong phần action-mapping.
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
name="PersonForm" scope="request" validate="true"
input="/PersonDetailForm.jsp">
type="org.apache.struts.action.ForwardAction" />
Trong ActionMapping có hai forward. Những forward tại địa phương - có nghĩa là những forward có thể được truy cập trong vòng ActionMapping này. Mặt khác, những forward quy định trong mục Forward Global có thể truy cập từ ActionMapping bất kỳ. Như bạn đã thấy trước đó, về phía trước một có một cái tên và một đường dẫn. Các thuộc tính tên là tên hợp lý được giao. Các thuộc tính đường dẫn là nguồn lực cho kiểm soát sự chuyển tiếp. Điều này có thể là một nguồn tài nguyên trang thực tế như trong
name="logon"
hoặc nó có thể là một ActionMapping như trong
name="logoff"
Các logoff/ (chú ý sự vắng mặt trong "do.") sẽ là một ActionMapping trong Struts-config.xml. Forward hoặc là toàn cầu hoặc địa phương được sử dụng trong execute() của lớp Action cho chuyển điều khiển đến một trang khác về physical hoặc ActionMapping.
Phần tiếp theo trong tập tin cấu hình là bộ điều khiển. Controller là tùy chọn. Trừ trường hợp có quy định, bộ điều khiển mặc định luôn là org.apache.struts.action.RequestProcessor. Có những trường hợp khi bạn muốn thay thế hoặc mở rộng này có bộ xử lý của chuyên ngành của bạn. Ví dụ, khi sử dụng Tiles (một trang JSP mẫu Framework) kết hợp có Struts, bạn sẽ sử dụng TilesRequestProcessor.
Phần cuối cùng sự quan tâm ngay lập tức là những tin nhắn định nghĩa tài nguyên. Trong các cuộc thảo luận ActionErrors, bạn đã thấy một đoạn mã được sử dụng một khóa bí ẩn như là đối số cho ActionError này. Chúng ta đã nói rằng khóa mapping này cho một giá trị trong một tập tin thuộc tính. Vâng, chúng ta tuyên bố rằng các thuộc tính tập tin trong Struts-config.xml trong phần tin nhắn định nghĩa nguyên. Việc kê khai, trong ví dụ ở trên nói rằng những tin nhắn Tài nguyên Bundle cho ứng dụng được gọi là ApplicationResources.properties.
Nếu bạn đang tự hỏi làm thế nào (và tại sao) một tập tin thuộc tính có thể được đặt trong một gói java, nhớ lại rằng bất kỳ tập tin (bao gồm cả file class) là một nguồn tài nguyên và hiện tải bởi bộ nạp class bằng cách chỉ định những gói.
DandTrung.
Không có nhận xét nào:
Đăng nhận xét