Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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 作为ant任务的一部分,将“.jsp”文件直接编译为纯文本_Java_Jsp_Ant_Template Engine_Build.xml - Fatal编程技术网

Java 作为ant任务的一部分,将“.jsp”文件直接编译为纯文本

Java 作为ant任务的一部分,将“.jsp”文件直接编译为纯文本,java,jsp,ant,template-engine,build.xml,Java,Jsp,Ant,Template Engine,Build.xml,作为ant任务的一部分,有没有办法将.jsp文件编译成文本文件 我知道通常一个.jsp文件会有一些变量,这些变量在HTTP请求发出之前是未知的。但是,在我的例子中,我的.jsp可以完全从文件中声明的变量生成 我也知道.jsp文件通常编译成Java源代码,但我想直接将.jsp文件编译成纯文本。首先从jsp创建Java文件。然后将编译为.class文件。这可以在调用JSP时完成,也可以对其进行预编译。在这两种情况下,您都会得到一个servlet,它根据JSP中定义的逻辑生成内容 在JSP中定义的代码

作为ant任务的一部分,有没有办法将.jsp文件编译成文本文件

我知道通常一个.jsp文件会有一些变量,这些变量在HTTP请求发出之前是未知的。但是,在我的例子中,我的.jsp可以完全从文件中声明的变量生成


我也知道.jsp文件通常编译成Java源代码,但我想直接将.jsp文件编译成纯文本。

首先从jsp创建Java文件。然后将编译为.class文件。这可以在调用JSP时完成,也可以对其进行预编译。在这两种情况下,您都会得到一个servlet,它根据JSP中定义的逻辑生成内容

在JSP中定义的代码部署到web容器之前,您不能执行它

即使您的JSP只包含纯文本或HTML,仍然会生成Java servlet的源代码,然后将此源代码编译为类文件,然后执行此servlet并生成您最初在JSP中拥有的内容。我认为在这种情况下使用JSP没有任何意义


如果您有一个可以呈现为文本的模板,而无需将其部署到web容器中,那么为什么要尝试通过JSP来实现呢?我建议你考虑模板引擎,如速度或胸腺胸腺叶也有离线渲染器。然后,我建议您相应地重命名生成的内容,例如,将其重命名为.txt、.html、.css等。

我认为这会满足您的需要。

目前我的实现是Velocity,但我希望转到JSP,因为我的团队已经熟悉它。Velocity与JSP有什么不同?从您的回答来看,JSP似乎需要一个web容器,而Velocity则不需要。是这样吗?在这种情况下,什么是web容器?JSP为什么需要web容器?速度非常有限。与JSP一样,您可以获得Java的全部功能。在一个简单的情况下,如果渲染2-3个属性,则没有太大区别,但在速度方面,您的开销更大,例如显式加载模板。使用JSP,您可以将纯Java代码嵌入到JSP中,实际上这是一种糟糕的做法,但仍然很强大。在JSP中,您可以使用所谓的自定义标记实现复杂的呈现逻辑。嵌入这样的自定义标记,JSP将隐式调用该标记后面的Java逻辑。JSP的代码仍然紧凑,可读性好。我建议您使用JSP作为JSP:但如果不确切了解您的需求和约束,很难说JSP是最佳解决方案。可能是Thymeleaf更好,或者是Angular、React或Vue更好。谢谢@mentalurg!这看起来很接近,但我需要将.jsp直接编译成文本,而不是Java源代码。@corse的JohnnyDonnell。但是什么时候将JSP编译成文本呢?我想是在执行时间,不是吗?Arco将把JSP转换为Java类,该类将生成所需的文本输出。