【问题标题】:How to use OGNL expression in JSP / Struts2JSP/Struts2中如何使用OGNL表达式
【发布时间】:2012-08-31 17:45:47
【问题描述】:

EL 一样,是否可以在常规HTML 中使用s: tags 之外的任何OGNL expressions

例如,如果我想在 EL 中获取某个 bean 的值,我会在 DIV 块内执行 <div>${beanName.propertyName} 之类的操作。

如何使用 OGNL 做到这一点。我有一个代码块:

    <s:iterator value="parentBean.qna" var="questionAndAnswers"
                status="qIndex">
      <li>
        <s:label theme="simple"
                 value="Question %{#qIndex.index+1} - %{#questionAndAnswers.question}"/>

        <ul>
        <s:iterator value="%{#questionAndAnswers.answers}" var="answer" status="answersStat">
        <li>            
        <input  type="radio" name="parentBean.answerMap['%{qIndex}']" />'
        value='<s:property value="%{#answersStat.index}"/>'><s:property value="%{#answer}" /></input>
        </li>
        </s:iterator>
        </ul>
        <br/>
      </li>
    </s:iterator>

上面写着input type="radio" name="parentBean.answerMap['%{qIndex}']" ... 我希望将qIndex的值动态替换为当前索引,以便可以将值设置为后面的相应键。所以,如果是parentBean.answerMap[1],我假设Action 处的地图将具有key=1 和输入值。

有什么帮助吗?

【问题讨论】:

    标签: struts2 expression ognl


    【解决方案1】:

    不使用 OGNL 语法,不; JSP 对 OGNL 一无所知。

    S2 的请求包装器允许使用 JSP EL 语法 (${}) 查询值堆栈,但我认为这不会扩展到命名值(未推送到堆栈,如迭代器索引)。

    当然,您需要在标签的属性中使用&lt;s:property value="#qIndex.index"/&gt;,就像使用value 属性一样。

    【讨论】:

    • 谢谢戴夫。我昨晚解决了这个问题。我决定在 Struts 标签中尝试一下 EL,它似乎可以工作。我以为不会,但确实如此。所以这让生活更轻松。欣赏解释
    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 2011-10-21
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多