2012-08-31 27 views
0

EL一樣,是否可以在常規HTML中使用s: tags之外的任何OGNL expressions如何在JSP/Struts2中使用OGNL表達式

例如,如果我想要在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],我假設該行動中的地圖將具有key=1和輸入的值。

任何幫助?

回答

1

不使用OGNL語法,no; JSP對OGNL一無所知。

S2的請求包裝允許查詢使用JSP EL語法(${})值棧,但我不認爲會擴展到命名值(未被推到堆棧中的值,比如迭代指數)。

當然,你不需要在標籤的屬性到–使用<s:property value="#qIndex.index"/>,就像你的value屬性做。

+0

謝謝戴夫。我昨晚解決了這個問題。我決定讓EL在Struts標籤中嘗試一下,它似乎工作。我認爲它不會但它確實如此。這樣可以讓生活更輕鬆。欣賞解釋 – user1111871

相關問題