2 Stimmen

Fehler bei der Verwendung von Iterator in Struts 2

Ich habe einen Iterator und ich versuche, dynamisch die ids benennen

 <s:iterator value="roleScreenDetailsList" status ="itemIndex">
     <table>      
    <tr class="normRow" id="row_<s:property value="#itemIndex.count"/>"          style="display:none;">
        <td colspan="8" class="bdr0">
            <s:textfield name="roleDescription" cssClass="txtboxDIS" id="Desc_<s:property value="#itemIndex.count"/>" size="30" disabled="true" />
         </td>

  </table>
 </s:iterator>

Im obigen Code wurde für die Tabellenzeile mit der Klasse "normRow" eine korrekte ID generiert, aber im Falle des Textfeldes erhalte ich den folgenden Fehler

org.apache.jasper.JasperException: /WEB-INF/jsp/screens/role.jsp(150,102) Unterminated &lt;s:textfield tag

Übersehe ich etwas?

2voto

lschin Punkte 6697
<s:iterator value="roleScreenDetailsList" status ="itemIndex">
   <table>
      <tr id="row_${itemIndex.count}">
         <td><s:textfield name="roleDescription" id="Desc_%{#itemIndex.count}" /></td>
      </tr>
   </table>
</s:iterator>
  • Verwenden Sie immer Ausdruck ${} anstelle von < s:Eigenschaft /> (außer für Typ Konvertierung ), siehe die Leistungsoptimierung von Struts2.
  • Verwenden Sie immer OGNL für Attribute des Struts2-Tags.

1voto

Umesh Awasthi Punkte 23037

Versuchen Sie einfach etwas wie

 <s:iterator value="roleScreenDetailsList" status ="itemIndex">
     <table>      
    <tr class="normRow" id="row_<s:property value="#itemIndex.count"/>"          style="display:none;">
        <td colspan="8" class="bdr0">
            <s:textfield name="roleDescription" cssClass="txtboxDIS" id='Desc_<s:property value="#itemIndex.count"/>' size="30" disabled="true" />
         </td>

  </table>
 </s:iterator>

1voto

Jörn Horstmann Punkte 32716

Benutzerdefinierte JSP-Tags werden nicht innerhalb von Attributen anderer JSP-Tags ausgewertet. Ein Scriptlet sollte in diesem Fall jedoch funktionieren:

<s:textfield name="roleDescription" cssClass="txtboxDIS"
    id='Desc_<%= ((org.apache.struts2.views.jsp.IteratorStatus)pageContext.findAttribute("itemIndex")).getCount() %>'
    size="30" disabled="true" />

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X