有没有办法让Eclipse WTP JSP编辑器将自定义TagLib的主体视为JavaScript?

时间:2013-10-15 21:41:34

标签: javascript jsp eclipse-wtp

我编写了一个简单的taglib(称为Script),它获取其正文内容,将其包装在HTML <script>元素中,并将其插入外部taglib的底部(称为{{1 }})。这是为了Zurb's Foundation 4的自动化初始化。这意味着这个JSP:

Body

呈现为此HTML:

<r:page>
  <r:head title='Test Site'/>
  <r:body>
    <div id='thing'></div>
    <r:script>
      $(function() {
        $('#thing').html('DOM is ready');
      });
    </r:script>
  </r:body>
</r:page>

现在,这种方法的缺点是Eclipse WTP JSP Editor将脚本taglib的主体内容视为更多HTML,因此我失去了JavaScript语法高亮。是否有某种方式(可能通过向<!DOCTYPE html> <!--[if IE 8]><html class='no-js lt-ie9' lang='en'><![endif]--> <!--[if gt IE 8]><!--><html class='no-js' lang='en'><!--<![endif]--> <head> <meta http-equiv='content-type' content='text/html;charset=UTF-8' /> <title>Test Site</title> <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1'> <link rel='stylesheet' href='/css/foundation.min.css'> <script src='/js/vendor/custom.modernizr.js'></script> <!--[if lt IE 9]><script src='http://html5shiv.googlecode.com/svn/trunk/html5.js'></script><![endif]--> </head> <body> <div id='thing'></div> <script> document.write('<script src=/js/vendor/' + ('__proto__' in {} ? 'zepto' : 'jquery') + '.js><\/script>') </script> <script src='/js/foundation.min.js'></script> <script> $(document).foundation(); //The contents of the <r:script> from the JSP $(function() { $('#thing').html('DOM is ready'); }); </script> </body> </html> 文件添加信息或创建.tld类来告诉JSP编辑器该主体是否可以读取JavaScript?或者是仅添加的唯一方法手动TagInfo元素(为了清楚起见,重命名自定义taglib,如<script></script>)。另外,为了防止比我更聪明的人说服这个额外的努力是值得的首先,替代方案是在每个页面的底部包含样板Zepto / jQuery加载器和onFoundationReady,当包括我通过JavaScript SDK使用Facebook Connect的事实时,有很多锅炉板代码,这个taglib干净地隐藏了我)

1 个答案:

答案 0 :(得分:1)

是和否。 JSP规范中没有任何内容传达有关标记正文内容的任何相关信息,编辑器可以使用该信息,而不是像处理页面的其余部分那样处理它或将其视为“放手”。

可以对WTP进行更改可能允许另一个 Eclipse插件来确定该区域的语法颜色,但我真的不知道是否有一个特定的功能是值得付出的努力。