2010-02-27 19 views
1

我在App Engine documentation中發現了這個例子。它在這個JSP中的拼寫錯誤,它說「</a>>」?

1 <% 
    2 UserService userService = UserServiceFactory.getUserService(); 
    3 if (!userService.isUserLoggedIn()) { 
    4 %> 
    5 Please <a href="<%=userService.createLoginURL("/newlogin.jsp")>">log in</a>> 
    6 <% } else { %> 
    7 Welcome, <%= userService.getCurrentUser().getNickname(); %>! 
    8 (<a href="<%=userService.createLogoutURL("/")>">log out</a>>) 
    9 <% 
    10 } 
    11 %> 

關於</a>>在線路5和線8的端部:是一個錯字?

如果沒有,爲什麼它應該是</a>>而不是</a>--這正是我所期望的。

+0

完整的猜測。 >是結束標籤。並使用一個實際上>你需要轉義>與>。 – 2010-02-27 04:08:36

+0

爲什麼不試一試,看看它是否有效? – 2010-02-27 04:30:31

回答

2

這的確在語法上無效。我不認爲這是一個錯字,它可能只是錯誤地使用javadoc。 javadoc中的HTML實體需要手動轉義/編碼,這經常被忽略。我也看到scriptlets未正確關閉。這裏是固定版本:

<% 
    UserService userService = UserServiceFactory.getUserService(); 
    if (!userService.isUserLoggedIn()) { 
%> 
     Please <a href="<%= userService.createLoginURL("/newlogin.jsp") %>">log in</a> 
<% } else { %> 
     Welcome, <%= userService.getCurrentUser().getNickname(); %>! 
     (<a href="<%= userService.createLogoutURL("/") %>">log out</a>) 
<% 
    } 
%> 

難看的代碼。我只想使用Filter和/或JSTL/EL拍攝。但這可能超出了Google App Engine的功能。從未使用它。

相關問題