Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Cách chỉ định kiểu mã hóa cho form post dữ liệu về ứng dụng web trong JSP?

Thẻ <fmt:requestEncoding> được sử dụng để chỉ định kiểu mã hóa được sử dụng bởi các form đăng dữ liệu trở lại ứng dụng web.

Các thuộc tính

Thẻ <fmt:requestEncoding> có các thuộc tính sau:

Thuộc tính Mô tả Bắt buộc Mặc định
key Tên mã hóa ký tự bạn muốn áp dụng khi giải mã tham số yêu cầu. Có Không có

Bạn sử dụng thẻ <fmt:requestEncoding> khi muốn chỉ định mã hóa ký tự cho việc giải mã dữ liệu được đăng từ form. Thẻ này phải được sử dụng với các mã hóa ký tự khác từ ISO-8859-1. Thẻ này là bắt buộc vì hầu hết các trình duyệt không bao gồm tiêu đề Content-Type trong yêu cầu của chúng.

Mục đích của thẻ <fmt:requestEncoding> là chỉ định loại nội dung của yêu cầu. Bạn phải chỉ định loại nội dung, ngay cả khi mã hóa của trang tạo phản hồi được chỉ định qua thuộc tính contentType của chỉ thị trang. Điều này là do locale thực tế của phản hồi (và do đó mã hóa ký tự) có thể khác với giá trị được chỉ định trong chỉ thị trang.

Nếu trang chứa hành động định dạng có khả năng I18N thiết lập locale của phản hồi (và do đó mã hóa ký tự) bằng cách gọi ServletResponse.setLocale(), bất kỳ mã hóa nào được chỉ định trong chỉ thị trang sẽ bị ghi đè.

Ví dụ

<%@ 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>Thẻ JSTL fmt:message</title>
</head>
<body>
<fmt:requestEncoding value = "UTF-8" />
<fmt:setLocale value = "es_ES"/>
<fmt:setBundle basename = "com.tutorialspoint.Example" var = "lang"/>
<fmt:message key = "count.one" bundle = "${lang}"/><br/>
<fmt:message key = "count.two" bundle = "${lang}"/><br/>
<fmt:message key = "count.three" bundle = "${lang}"/><br/>
</body>
</html>

Bạn sẽ nhận được kết quả sau:

Uno Dos Tres