WEB开发网
开发学院软件开发Java 使用 Google Sitebricks 构建更好的 Web 应用程序... 阅读

使用 Google Sitebricks 构建更好的 Web 应用程序

 2010-06-14 00:00:00 来源:WEB开发网   
核心提示: 再次注意一下 @At 注释,这次它的值是 "/restaurant/:name",使用 Google Sitebricks 构建更好的 Web 应用程序(9),:name 用于告诉 Sitebricks 这是个动态变量,它将 URL 与该模式匹配,Sitebricks 也是这

再次注意一下 @At 注释。这次它的值是 "/restaurant/:name"。:name 用于告诉 Sitebricks 这是个动态变量。它将 URL 与该模式匹配,并将 URL 的最后部分放到一个名为 name 的变量中。这是 Guice 中的常用变量。

get 方法有一个输入参数,由 @Named("name") 注释。调用 get 方法(收到 GET 请求时会调用该方法,因为它含有 @Get 注释)时,这会使 Guice 将从 URL 提取的值注入到该变量中。

示例对变量执行 URL 解码,因为它作为 URL 的一部分引入,而非作为一个 HTTP 请求参数(已执行解码)。如果没有它,Elephant Bar 会以 Elephant%20Bar 的形式引入。您可能会注意到,该类也包含一个有 @Post 注释的 addReview 方法。

表单提交

处理表单是 Web 应用程序中最繁琐的工作之一。正如您所期望的,Sitebricks 也是这里的一个亮点。清单 9 显示了餐馆明细页面的控制器。视图代码如下面清单 10 所示。

清单 10. 餐馆明细视图

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd"> 
 
<html lang="en"> 
 <head> 
  <title></title> 
 </head> 
 <body> 
   <h1>${restaurant.name}</h1> 
   <h2>Category: ${restaurant.category}</h2> 
   <h2>Average Rating: ${restaurant.averageRating}</h2> 
   <h2>Reviews</h2> 
    
   @ShowIf(noReviews) 
   <p>This restaurant has no reviews yet.</p> 
 
   @Repeat(items=restaurant.reviews, var="review") 
   <div class="review">${review.author}:${review.rating}<br/>${review.text}</div> 
 
   <form method="post"> 
     <label for="author">Your name:</label> 
     <input type="text" id="author" name="author"/> 
     <label for="rating">Your rating:</label> 
     <select name="rating"> 
       <option value="0" label="0"/> 
       <option value="1" label="1"/> 
       <option value="2" label="2"/> 
       <option value="3" label="3"/> 
       <option value="4" label="4"/> 
       <option value="5" label="5"/> 
     </select><br/> 
     <label for="text">Write your review:</label><br/> 
     <textarea id="text" name="text" cols="60" rows="40"/><br/> 
     <input type="hidden" name="restaurantId" value="${restaurant.id}"/> 
     <input type="submit" value="Submit your review"/> 
   </form> 
 </body> 
</html> 

上一页  4 5 6 7 8 9 10  下一页

Tags:使用 Google Sitebricks

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接