2008-12-18 9 views
0

HI,code JSP Struts ou tag JSTL

Je fais les choses Fölling dans le code jsp que je dois le faire en utilisant Struts ou en utilisant tag JSTL tout organisme peut avoir idée pertinente s'il vous plaît partager ..

Ce qui suit est mon code JSP

<% 

         Object category = request.getAttribute("categoryDetails"); 
         Hashtable<String, Hashtable<String, Integer>> cat = (Hashtable<String, Hashtable<String, Integer>>) category; 
         //out.print(cat.entrySet()); 

         Set<String> functions = cat.keySet(); 

         for(String fun : functions){ 

          out.print("-----------"); 
          out.print(fun); 
          out.print("-----------"); 

          Hashtable<String, Integer> obj = cat.get(fun); 

          Vector<String> subFunction = new Vector<String>(obj.keySet()); 

          Collections.sort(subFunction); 

          for(String str : subFunction){        
           out.print("#"+str+"-"+obj.get(str)); 
           } 
         } 



         %> 

Merci à l'avance.

Répondre

0

Vous pouvez utiliser une balise personnalisée ou créer une structure de vue temporaire comme ceci:

public class FunctionView { 
    String functionName; 
    List<SubFunctionView> subfunctions; 

    public FunctionView(String functionName, List<SubFunctionView> subfunctions) { 
     this.functionName = functionName; 
     this.subfunctions = subfunctions; 
    } 

    public String getFunctionName() { 
     return functionName; 
    } 

    public void setFunctionName(String functionName) { 
     this.functionName = functionName; 
    } 

    public List<SubFunctionView> getSubfunctions() { 
     return subfunctions; 
    } 

    public void setSubfunctions(List<SubFunctionView> subfunctions) { 
     this.subfunctions = subfunctions; 
    } 
} 

public class SubFunctionView { 
    String subFunctionName; 
    Integer value; 

    public SubFunctionView(String subFunctionName, Integer value) { 
     this.subFunctionName = subFunctionName; 
     this.value = value; 
    } 


    public String getSubFunctionName() { 
     return subFunctionName; 
    } 

    public void setSubFunctionName(String subFunctionName) { 
     this.subFunctionName = subFunctionName; 
    } 

    public Integer getValue() { 
     return value; 
    } 

    public void setValue(Integer value) { 
     this.value = value; 
    } 
} 

Alors vous venez Expost une méthode appelée Liste getFunctionsView() sur votre contrôleur et utiliser une boucle foreach jstl simple, imbriqué.

Modifier: A dû retravailler celui-ci légèrement.

0

Je n'utiliserais pas non plus, en regardant la logique impliquée, je préfèrerais écrire une balise jsp personnalisée pour y parvenir. JSTL/Struts sont tout aussi bons/horribles à faire cela.