JSF 转换器警告
来自我的 xhtml 文件:
<h:inputTextarea value="#{newPostForm.post.body}">
<f:converter converterId="NL2BRConverter" />
</h:inputTextarea>
来自我的 java 文件:
@FacesConverter(forClass=String.class)
public class NL2BRConverter implements Converter {
@Override
public Object getAsObject(FacesContext ctx, UIComponent comp, String str) {
return str.replaceAll("\r\n+", "<br />");
//return str.replaceAll("\r\n+", "
");
}
@Override
public String getAsString(FacesContext ctx, UIComponent comp, Object obj) {
return obj.toString();
}
}
Eclipse 在我的 xhtml 文件中向我发出警告,'NL2BRConverter'转换器ID 未注册。
我已尝试替换转换器注释,
@FacesConverter("NL2BRConverter")
但错误仍然存在。这还不足以在 JSF2.0 中注册转换器吗?
目前,如果我在 XHTML 文件中使用完整的类名“com.tracker.converter.NL2BRConverter”作为带注释的名称和转换器 ID,它就可以工作。但是我仍然收到该警告......
From my xhtml file:
<h:inputTextarea value="#{newPostForm.post.body}">
<f:converter converterId="NL2BRConverter" />
</h:inputTextarea>
From my java file:
@FacesConverter(forClass=String.class)
public class NL2BRConverter implements Converter {
@Override
public Object getAsObject(FacesContext ctx, UIComponent comp, String str) {
return str.replaceAll("\r\n+", "<br />");
//return str.replaceAll("\r\n+", "
");
}
@Override
public String getAsString(FacesContext ctx, UIComponent comp, Object obj) {
return obj.toString();
}
}
Eclipse is giving me a warning in my xhtml file that 'NL2BRConverter' converterID is not registered.
I've tried replacing the converter annotation with
@FacesConverter("NL2BRConverter")
but the error persists. Is this not sufficient to register a converter in JSF2.0 ?
Currently if I used the full class name "com.tracker.converter.NL2BRConverter" as the annotated name and the converterID in my XHTML files, it works. I still get that warning however...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不需要
因为您的转换器已由forClass=String.class
显式声明为在每个String
上运行代码> 输入类型。如果您的实际意图是自己为视图中的特定输入字段显式声明它,那么您应该使用
然后您可以使用
You don't need a
<f:converter>
because your converter is already explicitly been declared byforClass=String.class
to run on everyString
input type.If your actual intent is to declare it explicitly for specific input fields in the view yourself, then you should instead be using
Then you can use
虽然对于这种情况,您不需要在 xhtml 中指定转换器,但您这样做的事实不应导致在 Eclipse 中显示警告。这实际上是Eclipse 中的一个错误。请参阅 https://bugs.eclipse.org/bugs/show_bug.cgi?id= 357885 了解更多信息。我不知道有什么方法可以在 Eclipse 中隐藏这个特定的警告。
While for this case you don't need to specify a converter in xhtml, the fact that you did this shouldn't cause a warning to display in Eclipse. This is actually a bug in Eclipse. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=357885 for more information. I don't know of a way to hide this specific warning in Eclipse.