2012-01-13 35 views
14

Có thể "chia sẻ" một lớp Java giữa mã máy khách GWT và mã máy chủ không?Tôi làm cách nào để chia sẻ lớp giữa mã máy khách GWT và mã máy chủ?

Tôi có một lớp học đơn giản chỉ giữ một số Strings và một số ít là List<String>. Tôi muốn có thể sử dụng lớp này trong cả hai mã phía máy khách và mã phía máy chủ chỉ cho một số tính nhất quán.

Chỉ để cung cấp một số thông tin cơ bản, lớp tôi đang cố gắng chia sẻ chỉ là một vùng chứa cho thông báo lỗi với một số thông tin bổ sung. Trong ứng dụng của tôi có một số lỗi ngăn chặn lưu để chúng tôi thực hiện các kiểm tra đó ở phía máy khách (trước khi lưu). Sau đó, sau khi lưu, chúng tôi thực hiện kiểm tra "xác nhận" nhiều hơn trên đối tượng đã lưu ở phía máy chủ.

Tôi hiểu rằng nó sẽ phải được "biên dịch" hai lần, một lần để biên dịch GWT và một lần cho biên dịch javac bình thường, nhưng có vẻ như điều đó có thể xảy ra.

Có cách nào để thiết lập dự án GWT của tôi để thực hiện việc này không?

Trả lời

18

Một trong những lý do sử dụng GWT là có mô hình miền đơn cho máy khách và máy chủ.

Thực tiễn phổ biến là có các lớp được chia sẻ giữa mã máy chủ và phía máy khách.

Thông thường dự án với mã nguồn khách hàng GWT chia lên đến ba gói

com.yourpackage 
       -shared 
       -client 
       -server 

nơi shared gói biên dịch cả mã java byte và javascript, client để javascript, và logic phía máy chủ được đặt trong server gói.

Đường dẫn biên dịch cho ứng dụng khách có thể được định cấu hình trong tệp *.gwt.xml.

+3

Tiêu chuẩn cho GWT là sử dụng tên 'được chia sẻ'. Điều đó đang được nói, câu trả lời tốt. +1 –

+0

Chris, đồng ý, cảm ơn. –

+4

Cảm ơn Mairbek, điều này đã làm việc cho tôi. Chỉ cần cụ thể hơn một chút, chúng tôi không có gói "chia sẻ" vì vậy tôi phải tạo một gói mới. Tôi cũng phải thêm một dòng vào tệp * .gwt.xml của mình: '' – cshanes

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