如何在Eclipse中修改EL打开模板?

如何在Eclipse中修改EL打开模板?,eclipse,jsp,el,content-assist,Eclipse,Jsp,El,Content Assist,每当我在JSP文件中工作并键入${以启动el(表达式语言)标记时,Eclipse将自动在光标后添加}(在右括号前加一个空格),以便获得${}而不是${/code> 首选项中是否有可以修改以更改此行为的代码模板,还是超出了用户首选项的控制范围 我已经签入了Preferences:Web:JSP文件:Editor:Templates,但这些模板都不匹配。我还查看了Preferences中的其他几个部分,但没有发现任何有希望的内容。Mero提供的内容(请参见上面关于答案的评论)可能不是一个确切的答案,

每当我在JSP文件中工作并键入
${
以启动el(表达式语言)标记时,Eclipse将自动在光标后添加
}
(在右括号前加一个空格),以便获得
${}
而不是
${/code>

首选项中是否有可以修改以更改此行为的代码模板,还是超出了用户首选项的控制范围

我已经签入了Preferences:Web:JSP文件:Editor:Templates,但这些模板都不匹配。我还查看了Preferences中的其他几个部分,但没有发现任何有希望的内容。

Mero提供的内容(请参见上面关于答案的评论)可能不是一个确切的答案,但创建JSP模板可能是我发现的最接近的内容

对于任何想走这条路的人,请注意以下几点:

通过菜单窗口->首选项创建新模板,然后在深入菜单中导航到Web->JSP文件->编辑器->模板。单击新建

Name是您可以键入的快捷方式(与在Java中键入
sysout ctrl+space
System.out.println()的快捷方式相同)。我建议做一些简单的事情,比如
el
。这允许您键入
elctrl-space
,而不是
${ctrl-space
,以将其拉起

上下文告诉它什么时候应该在intellisense中出现。我建议创建两个模板,其中一个模板的上下文为JSP属性值,另一个模板的上下文为所有JSP

说明只是提供信息。你想放什么就放什么。我自己放“EL脚本”

模式是放置要插入内容的位置。根据偏好,放置
$${${cursor}}
$${${script}}
。有关差异的解释,请参见下文

在Eclipse模板中,
${}
是如何将变量放入模板中的,因此要使其实际打印
${}
,必须使用
$$
来转义
$
,从而导致
${}

预定义变量
${cursor}
定义了intellisense替换
el
后光标的位置,因此要使光标出现在要执行此操作的花括号之间:
$${${cursor}

使用任何未预定义的变量(在本例中,
${script}
)只需在该变量中加上一个框,并允许您在其上键入内容,完成后按enter键,从而移动到右大括号的末尾

注意:我知道这不是一个实际的答案,而是一个变通方法。我把它放在这里只是为了让那些对变通方法很在行的人知道如何去做

编辑


对于那些不喜欢键入
ctrl-space
的用户,一种解决方法是让模板名称以
开头,但不是答案:

禁用EL标记的自动关闭。键入
${expression}
并获取
${expression}
,而不是键入
${expression
并获取
${expression}
|
表示光标位置)


当Eclipse Kepler被问到同样的问题时,您可以看到这个答案:

Kepler没有答案。@user880772感谢您的链接;有一个答案建议关闭EL标记的自动关闭,这至少是一个改进。@Mero这需要我键入
${ctrl space
。关闭自动关闭是一个更好的解决方案,需要较少的脑力劳动。而且两种解决方案都没有完全达到目的。由于没有直接的解决方案(只是解决方法和黑客),我已经在Eclipse的bug tracker上记录了一个bug,希望Eclipse Mars(Luna之后的下一个版本)能够解决这个问题。