eclipse - 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}
.
所以我的问题分为两部分:
- Eclipse中是否存在这样的功能?
- 如果是,是什么原因导致它被禁用,我如何才能将其更改为启用?
解决方案
推荐阅读
- android - 是否可以在 RecyclerView 适配器或对话框中使用 MVVM ViewModel?
- python - 如何在 sqlite3 中插入字典
- python - Pygame 事件模块与玩家移动的关键模块
- javascript - 允许鼠标事件在具有绝对位置的重叠 div 上传播
- javascript - 如何使多个 innerHTML javascript 语句更加 DRY
- go - 通过反射实例化
- python - 管理存储在文件中的python结构,就好像它们在内存中一样?
- java - Android 无法从资产中打开我的数据库
- c# - 如何在数据模板中设置数据绑定的属性路径
- database - MongoDB云中的Atlas搜索过滤器可以用于日期之间的查询吗?