【问题标题】:JSP code to Struts or JSTL tagJSP 代码到 Struts 或 JSTL 标记
【发布时间】:2008-12-18 09:17:51
【问题描述】:

嗨,

我在 jsp 代码中做以下事情,我需要使用 Struts 或使用 JSTL 标签来做,任何人有相关的想法请分享..

以下是我的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));
                                }
                        }



                        %>

提前致谢。

【问题讨论】:

    标签: java jsp struts


    【解决方案1】:

    您可以使用自定义标签或创建临时视图结构,如下所示:

    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;
        }
    }
    

    然后,您只需在控制器上发布一个名为 List getFunctionsView() 的方法,并使用一个简单的嵌套 jstl foreach 循环。

    编辑:不得不稍微修改一下。

    【讨论】:

      【解决方案2】:

      我也不会使用,看涉及的逻辑,我宁愿写一个自定义的jsp标签来实现这一点。 JSTL/Struts 在这方面同样出色/糟糕。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-19
        • 2010-11-15
        • 2011-04-16
        • 1970-01-01
        • 2015-05-14
        • 2012-11-30
        相关资源
        最近更新 更多