JSF 转换器警告

发布于 2024-10-19 17:52:07 字数 946 浏览 1 评论 0原文

来自我的 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+", "&#13");
}

@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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花想c 2024-10-26 17:52:07

您不需要 因为您的转换器已由 forClass=String.class 显式声明为在每个 String 上运行代码> 输入类型。

如果您的实际意图是自己为视图中的特定输入字段显式声明它,那么您应该使用

@FacesConverter(value="NL2BRConverter")

然后您可以使用

<f:converter converterId="NL2BRConverter" />

You don't need a <f:converter> because your converter is already explicitly been declared by forClass=String.class to run on every String 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

@FacesConverter(value="NL2BRConverter")

Then you can use

<f:converter converterId="NL2BRConverter" />
或十年 2024-10-26 17:52:07

虽然对于这种情况,您不需要在 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文