3

我对 Java 很陌生,如果我的措辞不正确,我提前道歉。我有一个小代码片段,它有多个开始和结束分隔符,因为我有一些与 JSP 混合的 HTML。如果没有 HTML,这可以在几行代码中完成,但我需要 HTML 来呈现,它会导致几乎双倍的代码行。我想知道是否有更好的方法来做到这一点,而不是有这么多的打开和关闭分隔符。我知道我可以使用模板库,但我试图远离它,并希望尽可能在 JSP(而不是单独的类)中执行此操作。谢谢您的帮助!

<%
try {
  List<Page> children = properties.getPath("getChild", "");    
%>    
  <ul>       
<%      
  for (Page children : e) {
    if (children != null) {         
%>
   <li><a href="#">Show a link</a></li>
<%
   }//end if statement
  }//end for loop
%>
  <li><a href="<%= currentPage.getPath() %>" href="<%= currentPage.getPath() %>">Another link goes here</a></li>    
  </ul>
<% 
} catch (NullPointerException e){
%>
//show some content here
<% } %>
4

4 回答 4

2

使用 JSTL 而不是 JSP 中的所有 Java 代码。您可以在此处阅读 JSTL - http://docs.oracle.com/javaee/5/tutorial/doc/bnakc.html

于 2013-04-15T01:37:02.517 回答
2

我认为这种问题可以通过使用模板库或框架的包含视图约定来真正解决。

创建这些库是为了解决这类问题并将视图组织为一个整体。它不仅会清除您视图中的混乱,而且还会遵循 MVC 模式。

例如,在struts中,我们会做这样的事情:

<s:textfield name="myParameter" /> 

和这个:

<html:link page="/linkoutput.jsp" paramId="id" paramName="name"/>

有关您应该使用模板或框架的更多原因,请访问此问题。正如戴夫牛顿所说:

试图在 jsp 中完成这一切恰恰是错误的做法。

希望这可以清除它。

于 2013-04-15T01:37:05.023 回答
1
  1. 永远不要仅仅为了赶上 NPE 而赶上 NPE。

  2. 考虑使用 JSTL http://jstl.java.net/getStarted.html 它为迭代等提供了大量的标签。

于 2013-04-15T01:33:29.620 回答
0

使用 JSF 之类的东西会更好。就像 JSP 一样,它也包含在 Java EE 中。

于 2013-04-16T08:18:46.123 回答