Computer >> Máy Tính >  >> Lập trình >> Lập trình

Làm thế nào để sử dụng gói tài nguyên trong JSP?

thẻ sẽ cung cấp gói được chỉ định cho tất cả các thẻ xảy ra giữa các thẻ bị trả về nding các thẻ. Với điều này, bạn không cần chỉ định gói tài nguyên cho từng của mình các thẻ.

Ví dụ:hai khối sau đây sẽ tạo ra cùng một đầu ra -

<fmt:bundle basename = "com.tutorialspoint.Example">
   <fmt:message key = "count.one"/>
</fmt:bundle>
<fmt:bundle basename = "com.tutorialspoint.Example" prefix = "count.">
   <fmt:message key = "title"/>
</fmt:bundle>

Thuộc tính

thẻ có các thuộc tính sau -

Thuộc tính Mô tả Bắt buộc Mặc định
tên cơ sở Chỉ định tên cơ sở của gói tài nguyên sẽ được tải. Không có
Tiền tố Giá trị cần thêm vào trước mỗi tên khóa trong thẻ phụ Không Không có

Ví dụ

Gói tài nguyên chứa các đối tượng theo ngôn ngữ cụ thể. Các gói tài nguyên chứa khóa / giá trị cặp. Khi chương trình của bạn cần một tài nguyên dành riêng cho ngôn ngữ, bạn giữ tất cả các khóa chung cho tất cả ngôn ngữ nhưng bạn có thể dịch các giá trị cụ thể cho ngôn ngữ. Các gói tài nguyên giúp cung cấp nội dung cụ thể cho ngôn ngữ.

Tệp gói tài nguyên Java chứa một loạt ánh xạ từ khóa đến chuỗi . Phương pháp mà chúng tôi tập trung vào liên quan đến việc tạo các lớp Java đã biên dịch để mở rộng java.util.ListResourceBundle lớp. Bạn phải biên dịch các tệp lớp này và cung cấp chúng cho classpath của ứng dụng Web của bạn.

Hãy để chúng tôi xác định gói tài nguyên mặc định như sau -

package com.tutorialspoint;
import java.util.ListResourceBundle;
public class Example_En extends ListResourceBundle {
   public Object[][] getContents() {
      return contents;
   }
   static final Object[][] contents = {
      {"count.one", "One"},
      {"count.two", "Two"},
      {"count.three", "Three"},
   };
}

Hãy để chúng tôi biên dịch lớp trên example.class và cung cấp nó trong CLASSPATH của ứng dụng Web của bạn. Bây giờ bạn có thể sử dụng các thẻ JSTL sau để hiển thị ba số như sau -

<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
<html>
   <head>
      <title>JSTL fmt:bundle Tag</title>
   </head>
   <body>
      <fmt:bundle basename = "com.tutorialspoint.Example" prefix = "count.">
         <fmt:message key = "one"/><br/>
         <fmt:message key = "two"/><br/>
         <fmt:message key = "three"/><br/>
      </fmt:bundle>
   </body>
</html>

Đoạn mã trên sẽ tạo ra kết quả sau -

One
Two
Three

Hãy thử ví dụ trên không có tiền tố như sau -

<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
<html>
   <head>
      <title>JSTL fmt:bundle Tag</title>
   </head>
   <body>
      <fmt:bundle basename = "com.tutorialspoint.Example">
         <fmt:message key = "count.one"/><br/>
         <fmt:message key = "count.two"/><br/>
         <fmt:message key = "count.three"/><br/>
      </fmt:bundle>
   </body>
</html>

Đoạn mã trên sẽ tạo ra kết quả sau -

One
Two
Three