Java-Scriptlet到类的转换

Java-Scriptlet到类的转换,java,performance,jsp,Java,Performance,Jsp,我试图在我的项目中获取任何jsp脚本并将它们转换为模型类。因为我们都知道jsp中的脚本是邪恶的。除了这段代码,当我试图将它分离成一个类时,它确实给我带来了问题。这是一段相当简单的代码,在子节点之间循环。这是我的jsp,它工作得很好: <% NodeIterator ni = currentNode.getNodes(); while (ni.hasNext()) { Node nii = ni.nextNode(); String printNodeTitle = ni

我试图在我的项目中获取任何jsp脚本并将它们转换为模型类。因为我们都知道jsp中的脚本是邪恶的。除了这段代码,当我试图将它分离成一个类时,它确实给我带来了问题。这是一段相当简单的代码,在子节点之间循环。这是我的jsp,它工作得很好:

<%
  NodeIterator ni = currentNode.getNodes(); 

  while (ni.hasNext()) {
  Node nii = ni.nextNode();
  String printNodeTitle = nii.getProperty("fileReference").getString();
  %>
  <img src="<%= printNodeTitle %>" />
  <%
}
%>

奇怪的是我没有得到一个错误,我只是没有得到任何输出。有什么想法吗?非常感谢您的帮助。

您的变量ni应该是可编辑的,因此while循环应该如下所示:

while (ni.hasNext()) {

我不知道你把nodeLoop变量带到哪里去了。。。可能它只是一个空列表迭代器?

为什么您更喜欢将scriptlet转换为model(类)。它的努力和时间的损失。所以,我的建议是使用EL和JSTL来提高安全性。nodeLoop?定义在哪里?谢谢@igor。那是我的疏忽。即使加上ni,我仍然一无所获。还有其他想法吗?谢谢循环中的情况也是一样:change Node nii=nodeLoop.nextNode();到节点nii=ni.nextNode();此外,我还可以提出一些建议:如果可以在调试模式下运行服务器,只需在该方法中添加一个断点并查看变量即可。如果无法执行此操作,则始终可以添加带有一些跟踪信息的System.out.println。我喜欢在每行代码后面添加这些代码,比如:System.out.println(“步骤1”),以查看是否达到了这一步(例如,在循环内部)
while (ni.hasNext()) {