Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析具有多个子块的JTPL块_Java - Fatal编程技术网

Java 解析具有多个子块的JTPL块

Java 解析具有多个子块的JTPL块,java,Java,我正在使用JTPL()解析HTML。当我有一个将被重复解析的块,并且该块中有子块时,输出似乎是以前迭代的刷新数据,除了最后一个子块。我浏览了库的源代码,发现模板的解析方式有一个bug,或者可能是我正在尝试的功能不受支持。有没有遇到过类似的问题并用补丁修复 下面是我的java程序 import net.sf.jtpl.Template; import java.io.File; import java.io.IOException; import java.io.PrintWriter; im

我正在使用JTPL()解析HTML。当我有一个将被重复解析的块,并且该块中有子块时,输出似乎是以前迭代的刷新数据,除了最后一个子块。我浏览了库的源代码,发现模板的解析方式有一个bug,或者可能是我正在尝试的功能不受支持。有没有遇到过类似的问题并用补丁修复

下面是我的java程序

import net.sf.jtpl.Template;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import javax.servlet.*;

@WebServlet("/sample1")
public class sample1 extends HttpServlet implements SingleThreadModel {
        Template tpl;

        protected void doGet(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException, IOException {
                PrintWriter out = response.getWriter();
                try {
                        out.print(this.generatePage());
                } catch (Exception e) {
                        e.printStackTrace(out);
                }
        }

        private String generatePage() throws Exception {
                tpl = new Template(new File("C:\\Users\\stadikon\\Desktop\\sample1.jtpl"));
                tpl.assign("TITLE", "Sample 2");
                int line = 10, col = 4, altern = 2, count = 0;
                for (int i = 1; i <= line; i++) {
                        for (int j = 1; j <= col; j++) {
                                if (count % altern == 0) {
                                        tpl.assign("VARIABLE", "section1");
                                        System.out.println("sample1 - before parsing section1");
                                        tpl.parse("main.line.section1");
                                } else {
                                        tpl.assign("VARIABLE", "section2");
                                        System.out.println("sample1 - before parsing section2");
                                        tpl.parse("main.line.section2");
                                }
                                count++;
                        }
                        System.out.println("sample1 - before parsing line");
                        tpl.parse("main.line");

                }
                tpl.parse("main");
                return (tpl.out());
        }
}
预期产量

> >
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2
> >
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2
> >
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2

任何指针都很受欢迎。

我通过创建一个单独的模板来解决这个问题,解析它,并将其输出以字符串格式写入原始模板

> >
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2
> >
section1    Section1
section1    Section1
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2
> >
section1    Section1
section1    Section1
section1    Section1
section1    Section1
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2
> >
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2
> >
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2
> >
section1    Section1
section1    Section1
Dividing Line
section2    Section2
section2    Section2