【问题标题】:TeamCity: Scripting elements jsp:declaration, jsp:expression, jsp:scriptlet are disallowed hereTeamCity:此处不允许使用脚本元素 jsp:declaration、jsp:expression、jsp:scriptlet
【发布时间】:2016-10-06 21:39:04
【问题描述】:

我不确定该错误消息从哪里开始。我尝试过使用谷歌搜索,但我始终无法确定我收到此消息的充分理由。

我查看了各种 jsp 教程,它们看起来都比较简单,所以我看不出问题所在。

我正在为 JetBrains TeamCity 编写另一个插件,并且一直在我的 java 代码和 jsp 代码之间来回传递值,参数如下:

${parameterName}

每当我尝试使用像

这样的标签放入真正的 jsp 代码时
<%= new java.util.Date() %> 

这会引发此错误。

<%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet ) are disallowed here

感谢任何帮助或建议。

【问题讨论】:

  • 你的团队城市在哪个应用服务器上运行?
  • jboss,我开始认为问题更多在于 teamcity 如何部署他们的插件。我觉得我用 .jsp 和 java 做的一切都是正确的,但我一直收到错误。
  • 是的,我想知道他们是否通过一些特定于 JBoss 的上下文配置设置了等效于 scripting-invalid 标志。如果是这样,似乎应该非常清楚地记录在插件中不允许使用 scriptlet。这可能是他们技术支持的问题。

标签: java jsp teamcity


【解决方案1】:

应用程序中是否不允许使用 scriptlet?在您的 web.xml 文件中查找 &lt;scripting-invalid&gt;true&lt;/scripting-invalid&gt;

Scriptlet 是一个错误。它们使混合表示和逻辑变得太容易了。所以添加这个标志是为了防止开发人员在应用程序中使用它们,并鼓励使用表达式语言和标签库。

【讨论】:

  • +1。我已经离开JSP世界太久了,完全忘记了这个
  • 啊,好吧,我没有那个。我现在正在谷歌上搜索它,但是我在 web.xml 文件中的哪个位置添加它?我一开始就试着把它扔进去,但我仍然得到同样的错误信息。不过,我确信这是现在的问题,非常感谢您为我指明了正确的方向。
  • 等一下,我太笨了,我没有这个功能,所以应该启用脚本,对吧?我认为它是默认启用的,这是我正在处理的全新安装,因此无论如何都应该启用它。我是否必须将其编辑为 false?我认为我不应该这样做,所以我想这个问题仍未解决:(
  • 是的,默认情况下脚本是启用的。如果这个元素根本没有出现,这不是问题。
【解决方案2】:

您可以为不同的 url 模式打开和关闭脚本/scriptlet,因此对于 .tag 文件可以关闭,但如果需要,对于 .jsp 可以打开。下面是一个示例,尝试为您要使用的文件扩展名设置 scripting-invalid 为 false,如果 JBoss 默认为 true,则可能会覆盖默认值:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <scripting-invalid>true</scripting-invalid>
    </jsp-property-group>
    <jsp-property-group>
        <url-pattern>*.tag</url-pattern>                
        <scripting-invalid>true</scripting-invalid>
    </jsp-property-group>
</jsp-config>

【讨论】:

  • 会是这样的:
  • *.jspfalse*.tagtrue
【解决方案3】:

我也面临同样的问题。我发现当我在自定义标签中使用脚本标签时会出现问题。我猜也可以为标签定义 scripting-invalid 或类似的东西。只是一个指针。

【讨论】:

    【解决方案4】:

    如果你想在 .jsp 中允许 "" 那么:

    第一步:打开 web.xml

    第 2 步:进行以下更改:

    <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <scripting-invalid>false</scripting-invalid>
        </jsp-property-group>
        <jsp-property-group>
            <url-pattern>*.tag</url-pattern>                
            <scripting-invalid>false</scripting-invalid>
        </jsp-property-group>
    </jsp-config>
    

    第 3 步:重启应用。

    就是这样。

    【讨论】:

    • *.jsptrue*.tagtrue
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2016-05-01
    • 2018-05-15
    相关资源
    最近更新 更多