Play フレームワークを使用して 1 つの Web アプリケーションを開発しています。左側にあるナビゲーションのリンクをクリックして取得する ID を使用してグリッド形式でデータを表示したいと考えています (play フレームワークによって提供された zentasks サンプル アプリケーションに似ています)。 )。
左側のナビゲーターに href の形式でデータのリストを表示できます。しかし、アイテムをクリックすると、対応するビューがレンダリングされません。
私は彼らが与えたzentasksの例に従いました。zentask サンプルでは、ナビゲーションにあるプロジェクトをクリックしてボディをレンダリングする方法がわかりませんでした。
Play フレームワークで上記の機能を実現する方法を教えてください。
Main.scala.html があり、以下のように Nav と Section パーツがあります。
<h4 class="dashboard"><a href="#/">Locate Equipment</a></h4>
<ul id="projects">
<li data-group="equipment groups">
<span class="toggle"></span>
<h4 class="groupName">Equipment Groups</h4>
<span class="loader">Loading</span>
<ul style="height: 500px; overflow: auto">
@equipmentgroups.map{ task=>
<li data-project="@task.id">
<a class="name" href="#@routes.EquipmentGroups.search(task.id)">@task.name</a>
<span class="loader">Loading</span> </li>}
</ul>
</li>
</nav>
<section id="main">
@body
</section>
` そして、dashboard.scala.html は次のとおりです。
@(favorite:List[Favorite],equipmentGroup:List[EquipmentGroup],user: User)
@main(favorite,equipmentGroup,user){
<header>
<hgroup>
<h1>Dashboard</h1>
</hgroup>
</header>
<article class="tasks">
<div class="folder" >
<header>
<h3><a href="#">Equipment Group</a></h3>
</header>
</div>
</article>
}
リンクの左側をクリックすると、その機器名を右側に表示したいので、views.EquipmentGroups フォルダーに Equipment.scala.html を追加しました。
@( title: String)
<h4> This is @title</h4>
これは私のapplication.javaです: ` public class Application extends Controller {
public static class Login {
public String username;
public String password;
public String validate() {
if (User.authenticate(username, password) == null) {
return "Invalid user or password";
}
return null;
}
}
public static Result list() {
System.out.println(request().username());
return ok(dashboard.render(Favorite.GetFavorite(),
EquipmentGroup.GetEquipmentGroup(),
User.GetUser(session().get("username"))));
}
public static Result login() {
return ok(login.render(form(Login.class)));
}
public static Result logout() {
session().clear();
flash("success", "You've been logged out");
return redirect(routes.Application.login());
}
public static Result authenticate() {
Form<Login> loginForm = form(Login.class).bindFromRequest();
if (loginForm.hasErrors()) {
return badRequest(login.render(loginForm));
} else {
session("username", loginForm.get().username);
return redirect(routes.Application.list());
}
}
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.EquipmentGroups.search()
)
);
}`
私はJavaScriptを書いていません。
さらに情報を提供する必要がある場合はお知らせください。