Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jsf中转换器的用途是什么?_Jsf_Converter - Fatal编程技术网

jsf中转换器的用途是什么?

jsf中转换器的用途是什么?,jsf,converter,Jsf,Converter,转换器通常有两个方法,分别是getAsObject()和getAsString(),它们将对象转换成字符串或从字符串转换成字符串 我们为什么要这样做 例如,在dataTable中,我们总是可以使用var绑定对象。为什么我们不能在这里做类似的事情呢?最后,客户端(通常是浏览器)将收到JSF组件树的呈现版本,您通常通过.xhtml文件构建该组件树 例如,浏览器不知道大小数或日期。如果在表单的输入字段中写入“1.003”,浏览器如何知道它是服务器端的字符串,还是浮点或大十进制?它不可能知道这一点,也无

转换器通常有两个方法,分别是
getAsObject()
getAsString()
,它们将对象转换成字符串或从字符串转换成字符串

我们为什么要这样做

例如,在
dataTable
中,我们总是可以使用
var
绑定对象。为什么我们不能在这里做类似的事情呢?

最后,客户端(通常是浏览器)将收到JSF组件树的呈现版本,您通常通过.xhtml文件构建该组件树

例如,浏览器不知道
大小数
日期
。如果在表单的输入字段中写入“1.003”,浏览器如何知道它是服务器端的
字符串
,还是
浮点
大十进制
?它不可能知道这一点,也无法处理这一点。因此,服务器和浏览器之间的通信总是通过
字符串进行的。呈现HTML时,将使用
getAsString()
方法。在处理传输的表单输入时,JSF将使用
getAsObject()
将其转换回实际类型

为什么
var
在数据表中工作?因为在这里你只能走“单程”。dataTable将只显示某些内容,因此可以使用泛型的
toString()
方法。在这种情况下,不需要对对象进行转换。

最终,客户端(通常是浏览器)将收到JSF组件树的呈现版本,您通常通过.xhtml文件构建该组件树

例如,浏览器不知道
大小数
日期
。如果在表单的输入字段中写入“1.003”,浏览器如何知道它是服务器端的
字符串
,还是
浮点
大十进制
?它不可能知道这一点,也无法处理这一点。因此,服务器和浏览器之间的通信总是通过
字符串进行的。呈现HTML时,将使用
getAsString()
方法。在处理传输的表单输入时,JSF将使用
getAsObject()
将其转换回实际类型


为什么
var
在数据表中工作?因为在这里你只能走“单程”。dataTable将只显示某些内容,因此可以使用泛型的
toString()
方法。在这种情况下,不需要对对象进行转换。

我将复制并粘贴一个关于为什么我们应该使用JSF转换器的好答案(我不记得问题本身的链接)

JSF生成HTML。HTML在Java术语中基本上是一个大字符串。要在HTML中表示Java对象,必须将它们转换为字符串。此外,当提交HTML表单时,提交的值在HTTP请求参数中被视为字符串。在封面下,JSF从
HttpServletRequest#getParameter()
中提取它们,该函数返回String.To在非标准Java对象(即不是EL内置转换的字符串、数字或布尔值)之间转换
您必须为实体类提供自定义转换器。此转换器实现两个方法
getAsString()
method,以便所需的Java对象以唯一的字符串表示和
getAsObject()表示
方法,以便将HTTP请求参数转换回所需的Java对象

我将复制并粘贴一个关于为什么要使用JSF转换器的好答案(我不记得问题本身的链接)

JSF生成HTML。HTML在Java术语中基本上是一个大字符串。要在HTML中表示Java对象,必须将它们转换为字符串。此外,当提交HTML表单时,提交的值在HTTP请求参数中被视为字符串。在封面下,JSF从
HttpServletRequest#getParameter()
中提取它们,该函数返回String.To在非标准Java对象(即不是EL内置转换的字符串、数字或布尔值)之间转换 您必须为实体类提供自定义转换器。此转换器实现两种方法
getAsString()
方法,以便以唯一的字符串表示形式表示所需的Java对象;以及
getAsObject()
方法,以便将HTTP请求参数转换回所需的Java对象