2016-09-22 14 views
0

私はScalaを初めて使い、既にHTMLとJavaScriptで構築されたWebサイト内の別のページへのhrefリンクを構築しようとしています。私はスカラ座を研究し、それだけで別のページを参照するよりも多くのルートと構成であることを理解されていますPlay FrameworkのScalaとURL /ページリンクを構築する - 新しいページを開くためにクリックする

<a href="mypage.html"> 

:すべてのリンクは次のように設定されています。また、他のhtmlページは、main.scala.htmlページの@contentタグを使用してシングルページアプリケーションの設定として使用されているようです。私はこの説明で間違っているかもしれませんが、これは私にとっては意味があります。

私は新しいScalaのページを設定していると私のHTMLでそれを参照しています:

<div class="col-lg-3 col-md-3 col-sm-6 col-xs-6 col-ss-12 margbot30"> 
<a class="services_item" href="@views.html.login3(loginForm)"> 
<p> 
<b>New</b> User Account 
</p> <span>Sign up for a user account</span> 
</a> 
</div> 

それは私にエラーを与えるが、実際にその<div>タグにそのlogin3.scala.htmlページを表示しません。テキストをクリックしてからそのページを開いてみたかったのです。

このリンクまたはルートを正しく動作させるにはどうすればよいですか?

私はこの記事を見つけましたが、私はまだ何をすべきかわからない: Play! Framework - creating simple html links

私は助けと任意のコード例を感謝しています。

答えて

1

"@views.html.login3(loginForm)"が行っていることは、Scala関数login3を呼び出して、結果のコンテンツがページに表示されています。

ページにリンクするページを考えるのではなく、コントローラにリンクしているページを考えてください。

あなたは、このようなコントローラがある場合:

:これはあなたの意見で

GET /foo controllers.FooController.foo 
POST /bar controllers.FooController.bar 

としてroutesファイルを介して公開され

package controllers; 

class FooController extends Controller { 

    def foo = Action { request => 
    Ok(views.html.foo()) 
    } 

    def bar = Action { request => 
    Ok(views.html.bar()) 
    } 
} 

を、あなたはその後、生成されたルーティングを使用してハイパーリンクを定義します

<a href="@routes.FooController.foo()">whatever</a> 

あなたの場合は、代わりに

あなたの代わりに

<a class="services_item" href="@routes.SomeController.theFunctionThatRendersLogin3()"> 
を持っているでしょう
<a class="services_item" href="@views.html.login3(loginForm)"> 

関連する問題