JSP 代码到 Struts 或 JSTL 标记

发布于 2024-07-10 17:23:32 字数 1218 浏览 7 评论 0原文

你好,

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



                        %>

提前致谢。

HI,

I m doing the folling stuff in the jsp code I need to do it using Struts or using JSTL tag can any body have relevant idea please share..

The following is my JSP code

<%

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



                        %>

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无妨# 2024-07-17 17:23:33

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

I wouldn't use either, looking at the logic involved, I would rather write a custom jsp tag to achieve this. JSTL/Struts are equally good/horrible at doing this.

沉溺在你眼里的海 2024-07-17 17:23:32

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

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

编辑:必须稍微修改一下这个。

You can use a custom tag or create a temporary view structure like this:

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

Then you just expost a method called List getFunctionsView() on your controller and use a simple nested jstl foreach loop.

Edit: Had to rework this one slightly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文