如何在JSP中的自定义标记内使用IntelliJ语言注入

Chr*_*lin 11 jsp intellij-idea

我的公司在JSP中使用自定义标签来包装JavaScript.我无法让IntelliJ将这些标签的内容视为JavaScript.这是我们的标签看起来像一个简单的例子.

<ui:script>
  //Include javascript here...
  alert('Any code in here is treated as JavaScript');
</ui:script>
Run Code Online (Sandbox Code Playgroud)

有什么建议?我尝试过使用语言注入,但我找不到合适的设置.

我刚刚注意到问题与在<ui:script>标记中使用特定于JSP的语言有关.一个更糟糕的例子(注意打破一切的$ {selectedReportID}标签):

<ui:script>
    new Kamino.DependencyLoader({
        source: [
            '/static/js/modules/folders/Report.js'
        ],

        onSuccess: function () {
            new Kamino.Report({
                id: '${selectedReportID}',
                element: 'content-reporting-report-list'
            });
        }
    }).load();
</ui:script>
Run Code Online (Sandbox Code Playgroud)

igr*_*igr 12

这对IntelliJ IDEA 12有用.

这是带有自定义标记(aui:script)的JSP片段,它呈现了一些javascript代码:

之前

如您所见,它是纯文本,即alt + enter不提供任何建议等.

这是我在语言注入设置中添加的XML标记注入:

设置

一定要选择正确的命名空间.在此之后,相同的代码看起来像这样(打开文件后会有一些小的延迟):

后

它的颜色不同,正如您所看到的,aui:script标签之间的代码可以识别javascript上下文,提供建议等.

请尝试,如果这对你有用,我没有像我想的那样使用它:)