如何在JSP / Struts2中使用OGNL表达式

时间:2012-08-31 17:45:48

标签: struts2 expression ognl

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

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

如何使用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和输入值。

任何帮助?

1 个答案:

答案 0 :(得分:1)

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

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

当然,您不需要在您的代码的属性中使用<s:property value="#qIndex.index"/>,就像您对value属性一样。