使用 Google Sitebricks 构建更好的 Web 应用程序
2010-06-14 00:00:00 来源:WEB开发网注意,该类由 @At 注释,这是一个 Sitebricks 注释。"/" 值告诉 Sitebricks 将 "/" 的任何传入请求映射到该类。这个类充当应用程序 “主页” 的控制器。
Sitebricks 密切遵循 HTTP 和 REST 约定,因此能将不同的方法用于不同的 HTTP 方法,比如 GET 和 POST。@Get 注释表明要为 GET 请求使用哪些方法。您可以随意命名方法;“get” 没有任何特殊之处。注释决定将调用什么方法。
上述类有多个成员变量。RestaurantDao 是一个用来获取页面所需数据的对象。@Inject 注释下的构造函数 ShowRestaurants 告诉 Guice 注入一个 RestaurantDao,其他成员变量 restaurants、categories 和 category 构成页面的数据模型。视图中使用了变量 restaurants 和 categories。
category 变量实际上是一个请求参数。Sitebricks 会自动将同名的请求变量绑定到该参数。例如,如果为 http://<app>?category=Thai 发出请求,那么类别就是 Thai。根据代码,如果有一个给定类别,那么它将用于筛选所显示的餐馆列表。
清单 8 显示了视图代码,它使用控制器构建的数据模型。
清单 8. ShowRestaurants 视图
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Reviewr</title>
</head>
<body>
<h1>All Restaurants</h1>
<form method="get">
<label for="category">Select category:</label>
<select name="category" id="category">
<option value="" label="Any"/>
@Repeat(items=categories, var="category")
<option>${category}</option>
</select>
<input type="submit" value="Filter"/>
</form>
<table border="1">
<thead>
<tr>
<td>Name</td>
<td>Category</td>
<td>Average Rating</td>
</tr>
</thead>
<tbody>
@Repeat(items=restaurants, var="restaurant")
<tr><td><a
href="/restaurant/${restaurant.name}">${restaurant.name}</a></td>
<td>${restaurant.category}</td><td>${restaurant.averageRating}
</td></tr>
</tbody>
</table>
<div class="msg">Not in the list?
<a href="/restaurants/new">Add a restaurant!</a>
</div>
</body>
</html>
Tags:使用 Google Sitebricks
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接