【问题标题】:Using jQuery Templates in Struts2在 Struts2 中使用 jQuery 模板
【发布时间】:2011-07-22 15:08:34
【问题描述】:

我正在尝试使用 Struts2 (using jOWL to display an ontology) 更新页面。原始 HTML 页面使用 jQuery 模板,有几行,例如:

<h2 class="propertybox title" data-jowl="rdfs:label">${rdfs:label}</h2>
<span class="alt">${?p}</span><span>: </span><span>${?t}</span>

显示在 jQuery 脚本文件中确定的变量。这作为一个 .html 文件工作得很好。但是,.jsp 文件认为我正在尝试使用 Struts 变量而不是 jQuery 模板。遇到冒号和问号会崩溃。

我确实找到了一些 jQuery Struts2 libraries,但我没有看到任何可以映射到 jQuery 模板的标签。有没有其他方法可以做到这一点?

【问题讨论】:

标签: jquery jsp struts2 jquery-templates ognl


【解决方案1】:

您的问题是 jsp 认为 ${} 是 EL。所以你需要以某种方式逃避部分快递,这不会很漂亮:

From the JSP 2 spec:

For literal values that include the character sequence ${, JSP 2.0 provides a
way to escape them by using the sequence ${'${'. For example, the following
character sequence is translated into the literal value ${expr}:

${'${'}expr}

来源:http://www.velocityreviews.com/forums/t129212-ot-jsp-escape-el-expressions.html

【讨论】:

  • 确实可以编译(escaping the question mark 也是如此)!但是,在这两种情况下,它都显示文本而不是模板变量结果(如:${rdfs:label} 而不是 Wine)。我不确定是否只是 Tomcat 服务器(或 Eclipse Web 浏览器)有问题,或者我还缺少其他什么。
  • 我开始觉得我缺少一些东西。 jQuery 模板是客户端。所以只要页面到达转义tomcat或任何应用服务器不再负责。客户端然后加载页面并执行一个 jQuery 脚本,然后解析这些变量。
  • 事实证明,该脚本存在 Internet Explorer 问题(出于某种原因,该问题仅出现在 Struts 项目中,而不是同一事物的 .html 版本中)。如果我更改了我试图查看或在 Firefox 中查看的文件的扩展名,则模板数据显示良好。我还在想那个。谢谢!您的意见很有帮助。
【解决方案2】:

关于 EL 和建议的模式:

${'${'}expr}

根据Oracle,您可以禁用EL解析:Deactivating EL Expression Evaluation

<%@ page isELIgnored ="true|false" %> 

因为标识 EL 表达式的模式--${ }--在 JSP 2.0 之前的 JSP 规范中没有保留,所以可能存在这样的模式打算逐字传递的应用程序。为防止模式被评估,您可以停用 EL 评估。

该属性的有效值为真和假。如果为真,EL 表达式出现在静态文本或标记属性中时将被忽略。如果为假,EL 表达式由容器计算。

【讨论】:

    猜你喜欢
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多