JSP JSTL <fmt:requestEncoding> 标签
JSP 标准标签库(JSTL) <fmt:requestEncoding>标签用来指定返回给 Web 应用程序的表单编码类型
语法
<fmt:requestEncoding> 语法格式如下
<fmt:requestEncoding value="<string>"/>
属性
<fmt:requestEncoding> 标签有如下属性
属性 | 描述 | 必须 | 默认值 |
---|---|---|---|
key | 字符编码集的名称,用于解码 request 参数 | 是 | 无 |
可以使用 <fmt:requestEncoding> 标签来指定字符集,用于解码来自表单的数据
在字符集不是 ISO-8859-1 时必须使用这个标签
由于大多数浏览器在它们的请求中不包含 Content-Type 头,所以需要这个标签
<fmt:requestEncoding> 标签的目的就是用来指定请求的 Content-Type
我们必须指定一个 Content-Type,就算 response 是通过 Page 指令的 contentType 属性来编码
这是因为 response 的实际区域可能与 Page 指令所指定的不同
如果页面包含 I18N-capable 格式行为用于设置 response 的 locale 属性(通过调用 ServletResponse.setLocale()
方法),任何在页面中指定的编码集将会被覆盖
范例
先在 src/main/resources
目录下建立一个 demo_zh_CN.properties
文件,内容如下
count.one=\u58f9 count.two=\u8d30 count.three=\u53c1
properties 文件里的内容要转成 Unicode
接下来我们开发 JSP 页面,内容如下
webapp/jstl_fmt_requestencoding.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <!DOCTYPE html> <meta charset="utf-8"> <title>JSTL <fmt:requestEncoding> 标签 - JSP 基础教程 | 简单教程(www.twle.cn)</title> <fmt:requestEncoding value="UTF-8" /> <fmt:setLocale value="zh_CN"/> <fmt:setBundle basename="demo" 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/> <p>JSTL <fmt:requestEncoding> 标签 - JSP 基础教程 | 简单教程(www.twle.cn)</p>
在浏览器上输入 http://localhost:8080/jsp/jstl_fmt_requestencoding.jsp 显示如下