2010-09-10 16 views
1
<s:iterator var="parent" value="studentList"> 
    <s:iterator var="child1" value="#parent.subjectList"> 
     <s:property value="%{subjectName}" />: 
     <s:textfield id="subject" name="%parent.subject.id}" theme="simple" /> 
    </s:iterator> 
</s:iterator> 

J'ai une page jsp avec le code ci-dessus. J'ai deux listes i) studentList, ii) subjectList. Pour chaque étudiant, il y a une liste de sujets. Maintenant, je dois enregistrer les marques. Comment puis-je obtenir ces valeurs dans mon action? J'utilise Struts2. Merci d'avance.accéder aux données de struts2 imbriqué itérateur en action

+0

Où se trouve la marque? comment tu voulais en classe d'action? En tant que clé de carte de hachage en tant que sujet, puis valeur en tant que marques éditées/ajoutées? .. entrer clairement. – Jothi

Répondre

0

Voici comment le code JSP ressemblera:

<s:form action="saveaction" > 
     <s:iterator value="lstBean" id="lstBean" status="outerStat"> 
      <s:textfield value="%{name}" name="lstBean[%{#outerStat.index}].name"/> 
      <s:textfield value="%{amt}" name="lstBean[%{#outerStat.index}].amt"/> 
      <s:textfield value="%{id}" name="lstBean[%{#outerStat.index}].id"/> 
      <s:iterator value="%{lstString}" status="myStat"> 
       <s:textfield name="lstBean[%{#outerStat.index}].lstString[%{#myStat.index}]"/> 
      </s:iterator> 
     </s:iterator> 
     <s:submit value="Click me to submit lstBean"/> 
    </s:form> 

ci-après le haricot (XBean) dont la liste est utilisé dans la JSP:

public class XBean 
{  
private ArrayList<String> lstString=new ArrayList<String>(); 
private String name; 
private Double amt; 
private Integer id; 
//Getters and setters of fields 
} 

Maintenant, vous pouvez simplement avoir un champ lstBean avec les setters dans votre action de soumission (sauveaction) et bon vous avez terminé.