Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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 将行号输出到JSP中生成的文档_Java_Jsp_Jstl - Fatal编程技术网

Java 将行号输出到JSP中生成的文档

Java 将行号输出到JSP中生成的文档,java,jsp,jstl,Java,Jsp,Jstl,是否有允许输出文件行号的标记。我的意思是如果有jsp文件 将输出 <html> 2 </html> 这是否存在 更精确的用例如下所示: <script> var x=1; //${some_jsp_var} line-number-here <c:if test="${whatever}"> func1(); //line-number-here </c:if> </script> 事实上

是否有允许输出文件行号的标记。我的意思是如果有jsp文件

将输出

<html>
2
</html>
这是否存在

更精确的用例如下所示:

<script>
  var x=1;
  //${some_jsp_var} line-number-here
  <c:if test="${whatever}">
    func1();
    //line-number-here
  </c:if>
</script>

事实上,jsp代码用于生成js文件。

不,因为当jsp正在执行时,运行的不是jsp代码本身,而是servlet引擎将其翻译到的.class对应文件。

不确定这里的用例是什么,但是,您可以使用Javascript完成一些接近您想要的内容。特别是,我认为您可以用一行jQuery做一些接近您描述的事情,但我并不是jQuery大师,所以我可能在这方面做得不好


但我想你可能只是不想说出行号,而把它作为其他测试。如果您能更详细地描述您的用例,我们可能会为您指出正确的方向。

我知道,这会使实现变得更困难,但并非不可能。我可以考虑一些定制标签,也许可以做到这一点。但是在我的例子中,为这个调试功能添加一个标记不是一个选项。但是,您可以调试JSP代码的某些部分,如JSTL标记部分和scriptlet部分,也就是说,使用eclipse,您只需在JSP中添加一个断点,然后在调试模式下启动web应用服务器,连接到它并访问JSP。断点将停止执行,这样您至少可以知道执行了逻辑块的哪些部分,等等。但是,由于实际调试是在从JSP代码获得的Java类上进行的,因此您将无法看到JSP标记中声明的变量和值,等等。很遗憾,调试不是一个可用的选项。这个数字会告诉你什么?如果它应该打印在页面上,您可能会在一行中得到多个数字,因为浏览器会忽略JSP中的换行符,它们甚至可能不会添加到生成的html中。这是为了调试。要添加一些好的旧printf并查看执行了哪些代码,请不要将Java代码放入JSP文件中。我同意BalusC的观点,请使用标记和表达式。然而,如果您真的需要这个输出,为什么不在Java代码中编写它呢?如果你在JSP上设置了一个断点,一个好的调试器应该能够告诉你它在哪一行工作。如前所述是为了调试目的。任何难看的代码都可以。此外,用Java重写所有内容是不可能的。嗯,不确定。事实上,jsp文件也是一个js文件。所以js可以输出行号,但我希望js文件本身有行号
<script>
  var x=1;
  //${some_jsp_var} line-number-here
  <c:if test="${whatever}">
    func1();
    //line-number-here
  </c:if>
</script>