【问题标题】:struts2 s:url with s:property value not workingstruts2 s:url 与 s:property 值不起作用
【发布时间】:2013-01-08 23:21:52
【问题描述】:

我正在尝试使用s:url,并且该值包含一个属性。而且它不起作用。

<s:url value='/js/myJS-<s:property value="locale"/>.js'/>

预期输出:

....../contextPath/js/myJS-en_US.js

【问题讨论】:

    标签: java struts2


    【解决方案1】:

    这样嵌套 JSP 标签是非法的。

    使用普通的 JSP EL(假设您在支持它的容器上):

    <s:url value="/js/myJS-${locale}.js"/>
    

    如果您没有运行支持 JSP EL (ew) 的容器,请使用 OGNL:

    <s:url value="/js/myJS-%{locale}.js"/>
    

    可以说这是首选机制,因为 OGNL 是 S2 的默认 EL。


    当报告“不工作”时,您还应该包括您遇到的错误,例如,在这种情况下,JSP 永远不会编译。

    【讨论】:

    • 对不起,我对 struts2 很陌生。我刚刚尝试了您的代码,但未评估语言环境。我应该做什么/包括什么来在我的 jsp 中支持 EL?
    • @Drogba 只要您使用任何最近的 servlet 容器并将 web.xml 设置为 2.5+ (IIRC),它应该可以正常工作。
    • web.xml 版本为 2.4。有什么选择吗?
    • @Drogba 切换到 2.5。这是一个容器问题,而不是 web.xml 问题。或者使用 OGNL,S2 的原生 EL:&lt;s:url value="/js/myJS-%{locale}.js"/&gt;,无论如何这可能是更可取的解决方案。
    • 非常感谢。它就像一个魅力。你提到了那个容器问题,我对此有点困惑。 “%”和“$”的区别和jboss有关吗? web.xml?支柱库?标签?你能再解释一下吗?
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 2011-01-26
    相关资源
    最近更新 更多