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

如何在JSP/Struts2中使用OGNL表达式,struts2,expression,ognl,Struts2,Expression,Ognl,比如,是否可以在常规HTML中使用任何外部的 e、 例如,如果我想在EL中获取某个bean的值,我会在DIV块中执行类似${beanName.propertyName}之类的操作 如何使用OGNL实现这一点。我有一个代码块: <s:iterator value="parentBean.qna" var="questionAndAnswers" status="qIndex"> <li> <s:lab

比如,是否可以在常规HTML中使用任何外部的

e、 例如,如果我想在EL中获取某个bean的值,我会在
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]
    ,我假设操作处的映射将具有
    key=1
    和输入值


    有什么帮助吗?

    没有使用OGNL语法,没有;JSP对OGNL一无所知

    S2的请求包装器将允许使用JSPEL语法(
    ${}
    )查询值堆栈,但我认为这不会扩展到命名值(没有压入堆栈的值,如迭代器索引)


    当然,您不需要–在标记的属性中使用
    ,就像您对
    属性所做的那样。

    谢谢Dave。我昨晚解决了这个问题。我决定在Struts标签中尝试一下EL,它似乎起了作用。我以为不会,但它做到了。这样生活就更容易了。感谢你的解释