首页 > 解决方案 > eclipse可以将Java编辑连接到JSF文件,如果可以,如何启用它?

问题描述

在使用 Eclipse 编辑 Web 应用程序时。当我编辑 Java 类,将光标放在方法名称上并使用鼠标菜单中的“搜索引用”时,Eclipse 会显示 Java 代码中使用该方法的所有其他位置。当我在一个 Java 类中重命名方法时,重命名会在使用该方法的任何其他 Java 类中的所有代码中执行。

但是,在我们的 Web 应用程序中,也有 JSF-XML 格式 (EL) 的 HTML 文件,它们也可以使用 Java 代码。例子:

// BaseForm.java
@Named("BaseForm")
@SessionScoped
public class BaseForm
    public String getMessage() {
       return "Lorem ipsum dolor sit amet";
    }
}
<!-- baseForm.xhtml -->
<ui:composition ...>
    <ui:define name="contentHeader">
        <h3>#{BaseForm.message}</h3>
                       ^^^^^^^ this will invoke getMessage()!

Eclipse 确实检测到 Java 和 HTML 之间的连接:如果没有BaseForm,或者BaseForm没有getMessage(),它将在 HTML 编辑器中显示错误。

我没有正常编辑 HTML 文件,我只处理 Java 代码。但是,如果我重命名某些内容,则重命名可能必须与 HTML 中某处的更改保持一致。我经常错过这一点,直到用户单击错误所在的页面并且应用程序崩溃时才会注意到它。(也就是说,没有编译时错误。)我的问题是,重命名时在 Eclipse 中是否对我有任何支持,如果有,我该如何启用它?

观察到的行为是,当我“搜索引用”时,Eclipes 只给我 Java 中的匹配项,而不是 HTML 中的匹配项(尽管它知道一些关于两者的关系,正如我之前写的那样。)如果我 rename getMessage(),例如to getFallbackMessage(),它将更改所有 Java 类中的所有函数调用,同时考虑到继承等多种依赖关系,并且不会意外重命名getMessage()属于另一个类的不相关函数。所以这比文本编辑器在所有文件中的编辑/替换功能更强大。但是,Eclipse 不会更改调用该函数的 HTML。

我可以想象,如果这个功能的一部分如此详尽,那么也有一些支持将这种重命名移植到 HTML,但它还没有。我想知道这是否存在,如果存在,我该如何启用它。

想要的行为是,当我“搜索引用”时,Eclipse 会显示 Java 文件中的引用和 XHTML 文件中的引用。当我重命名getMessage()getFallbackMessage()时,HTML 将被编辑,并将#{FormClass.message}更改为#{FormClass.fallbackMessage}.

所以我的问题分为两部分:

标签: eclipsejsf

解决方案


推荐阅读