Giúp đỡ sử dụng nội dung .properties lên file html
Xin chào mọi người, mình là Mem mới. Mình đang làm một ứng dụng nhỏ bằng java Spring và Angularjs, mình muốn sử dụng nột file .properties có chứa các nội dung của các từ được sử dụng lại nhiều lần kiểu như này ạ. "info.name": "Name" "placeholder.name": "Nhập giới tính", "placeholder.code": "Nhập mã giới tính", Giờ mình muốn dùng nó lên trên html thì phải làm như nào ạ? ví dụ như: < label>{info.name} < /label> để hiển thị nội dung là "Nhập giới tính". Cấu trúc source của mình đây ạ. ! Hay có thể cho mình từ khóa mình tìm kiếm với ạ? Cảm ơn.
3 CÂU TRẢ LỜI
Hi bạn, với câu hỏi của bạn bạn có thể tham khảo về sử dụng đối tượng org.springframework.context.support.ResourceBundleMessageSource để load message Resouce lên trong context của ứng dụng nhé bạn tham khảo VD : https://www.mkyong.com/spring/spring-resource-bundle-with-resourcebundlemessagesource-example/
Mình đang tham khảo theo link của bạn và thấy nó rất hay. Cảm ơn!
Nhưng bạn ơi mình gặp khó khăn là nó chỉ ở trong java trong khi mình muốn đưa nó ra html với Angularjs.
Nhưng bạn ơi mình gặp khó khăn là nó chỉ ở trong java trong khi mình muốn đưa nó ra html với Angularjs.
Một cái gì đó như là "Asynchronous Loading" chẳng hạn
Hi bạn, AngularJs là client site, trong khi Java là server site, nên với resource từ phía server site nếu bạn muốn sử dụng nó thì hãy tạo một request get đến server rồi trả về trong result của request nhé. vì clientsite sẽ ko tự động có được các Dữ liệu từ phía server mà bạn cần lấy nó về từ servers nghĩa là bạn cần phát sinh request trả về các message ở trong context dạng Json sau đó binding vào ng-bind
có một cách là bạn có thể tham khảo sử dụng angular-translate : https://gist.github.com/rvillars/6422287
Để đọc properties từ 1 trong class bạn có thể dùng cách sau nhé:
import java.io.InputStream;
import java.util.Properties;
...
...
String propFileName = "path/to/DangGia.properties"
InputStream input = null;
Properties prop = new Properties();
input = Application.class.getClassLoader().getResourceAsStream(propFileName);
prop.load(input);
prop.getProperty("info.name")
Sau khi đọc đc trong controller (chẳng hạn) hãy bind nó ra view và xử lý trên angular
Ps: Code trên có thể còn phải sửa lại cho phù hợp vs Project của bạn
Application
là tên class trong ứng dụng cá nhân mình đã từng viết :bride_with_veil_tone1:
Mình đã từng thử dùng cách đưa nội dung file .properties vào $roorScope nhưng có vẻ không hợp lý, của bạn có vẻ rất hay và mình đang thử, sẽ báo kết quả cho bạn. Rất cảm ơn bạn.
Nhưng làm sao để đưa nó ra html sử dụng mà không cần xác nhận qua java? ý mình là có thể lấy file này ra mà tương tự như "Asynchronous Loading", mình không giỏi diễn đạt
@hocdv đưa nó ra html mà ko cần qua java thì bạn nên dùng json file, hãy đặt file json đó trong thư mục public, rồi get về khi khởi chạy angular app. Ex: http://embed.plnkr.co/I1aLZg/
nếu ko qua java thì cách tốt nhất bạn lên làm là theo cách của @Cùi Bắp nhé