JSP /サーブレット/ MVCを初めて使用し、レシピに関する情報を表示するJSPページ(サーブレットとMVCパターンを使用)を作成しています。JSPのインクルードとMVCのパターン
サーブレットの場合、doGet()ではすべての必要な情報をModel POJOに取り込み、要求をJSPビューに転送してレンダリングします。それはうまく働いています。
私は「コメント」部分を別々のJSPにしたいのですが、RecipeView.jspではこれらのビューを分けることができます。だから私はそれを作ったが、今はちょっと立ち往生している。 CommentOnRecipe.jsp内のフォームは、コメントの記録を処理するCommentActionサーブレットに投稿します。レシピページをリロードすると、私が作成したコメントが表示されます。
私がしたい:
- は(今のところ何のAJAX)をコメントしない後に自動的にページを再読み込み
- ブロック1日の時間枠の上に各レシピに複数のコメントを作るから、ユーザ(経由クッキー)。だから、ユーザーがコメントを書く度にプロダクトIDを示すクッキーが保存されるので、後でチェックすることができます。 MVCコンテキストではどのように動作しますか?
- は、彼らはすでに彼らは私がこれを達成するためにどのようにJSPをなどを含む/豆を使用する方法について困惑している
にコメントしている彼らは1 を訪問レシピにコメントしているユーザーにメッセージを表示します。
私はASP.NETの土地で知っているのは、私がページに配置するUseControl、またはASP.NET MVCであれば、何らかの並べ替えのPartialViewになります。私はJSP /サーブレット/ MVCコンテキストでこれが動作する方法とちょっと混乱しています。あなたが新しいページにリダイレクトするか、同じページを更新するjavax.servletのresponse.sendRedirect()または前方のAPIを使用することができます
ありがとうございました。ユーザーはサイトに登録する必要はありません。それはすべて比較的匿名ですので、特定のレシピ/コメントをユーザーIDに結びつけることはできません。だから、これに照らして、私のModelクラス(レシピと呼ばれる)は、ユーザーが既に投票したかどうかをチェックする機能を公開すべきですか?これを行うにはServiceクラスを使用すべきではありませんか?例えば。 RecipeService.HasVoted(recipeId)は、Cookieが設定されているかどうかを確認します。 – xingyu
はありそうもありません。したがって、エンティティオブジェクト(この場合はレシピ)には、通常、あまりにも多くのビジネスロジックが存在しません。エンティティオブジェクトを使用するサービスレイヤは、そのようなロジックを配置するのに適しています。実際にMVCはEntity/POJOモデルオブジェクト - > Service Objects - > Servlets/viewmodel/viewHelpers-> View/JSP/HTMLのように見えます。だから、RecipeService.userHasVoted(userid)はそれを置くのに良い場所です...続きを読む –
唯一の問題は、この状態があなたの機能の制限のためにビューに保存されているからです。あなたが実際にそれをクッキーに保管しているときは:)クッキーをチェックするためにあなたのサービス層にアドバイスしません。サーブレットがクッキーをチェックし、サービス層のAPIを呼び出して状態を設定します(そして、別のAPIを使用して状態を読み込みます)。これは、ユーザー情報の保存をサポートしていれば、 、それは簡単に変更するようになります –