我对页面有这样的Seam描述:
<page xmlns="http://jboss.com/products/seam/pages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd"
login-required="true" conversation-required="false" no-conversation-view-id="/home.xhtml">
<begin-conversation join="true"/>
<param name="reportid" value="#{filter.reportIds}" />
<navigation from-action="#{identity.logout}">
<redirect view-id="/login.xhtml"/>
</navigation>
</page>
我通过参数reportid
传递了网址http://localhost/home.seam?reportid=123
,我想知道哪个转换器用于将其转换为字符串?
我没有找到任何有关参数的默认转换器的信息。
有人知道这是如何运作的吗?
答案 0 :(得分:0)
如果没有提供特定的转换器(并且正在使用JSF),Seam会尝试从目标属性的类中推断出正确的转换器。
Seam @Converter
注释提供forClass
参数,告诉Seam转换器生成哪种类型。注册转换器组件时,Seam会为每种类型构建一个默认转换器列表。找到没有类型的转换器时,目标属性的类用于在此列表中查找适当的转换器。
如果没有找到目标类型的Seam转换器,那么Seam会将选择适当的转换器委托给底层的JSF实现。对于JSF 1.2 RI,这将返回byte
,boolean
,short
,int
,long
,{{1}的默认转换器之一}}或float
,如果目标类型是其中之一。如果底层JSF实现没有找到转换器,则抛出double
。