繁体   English   中英

将JSP代码转换为Struts或JSTL标记

[英]JSP code to Struts or JSTL tag

嗨,

我正在用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));
                                }
                        }



                        %>

提前致谢。

我不会使用任何一个,而是要查看所涉及的逻辑,而宁愿编写一个自定义的jsp标记来实现此目的。 JSTL / Struts在此方面同样出色/可怕。

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

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循环即可。

编辑:不得不略作修改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM