4

GoogleAppEngineでJavaサーブレットとJSPページを作成する方法を学んでいます。MVCモデルを使用しようとしていますが、正しく使用しているかどうかわかりません。現在、ページにアクセスしたときに呼び出されるサーブレットがあります。サーブレットはすべての処理を実行し、次のようにjspに転送されるHomePageViewModelオブジェクトを作成します。

// Do processing here
// ...
HomePageViewModel viewModel = new HomePageViewModel();
req.setAttribute("viewModel", viewModel);

//Servlet JSP communication
RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("/jsp/home.jsp");
reqDispatcher.forward(req, resp);

jsp側では、次のようなものがあります。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="viewmodels.HomePageViewModel" %>
<%
  HomePageViewModel viewModel = (HomePageViewModel) request.getAttribute("viewModel");
  pageContext.setAttribute("viewModel", viewModel);
%>

<html>
  <body>
  <% out.println(((HomePageViewModel)pageContext.getAttribute("viewModel")).Test); %>
  </body>
</html>

だから私の質問は2つあります。まず、これは小さなWebアプリで物事を行うための合理的な方法ですか?これは、私が受講しているクラスの小さなプロジェクトです。次に、jspファイルで、ビューモデルデータにアクセスするためのより良い方法はありますか?

4

1 に答える 1

7

Javabeans仕様に準拠している場合(つまり、パブリックゲッター/セッターでプライベートプロパティを使用している場合)、

public class HomePageViewModel {

    private String test;

    public String getTest() { 
        return test;
    }

    public void setTest(String test) {
        this.test = test;
    }

}

次に、EL(式言語)を使用してデータにアクセスできます。

<%@ page pageEncoding="UTF-8" %>
<html>
  <body>
  ${viewModel.test}
  </body>
</html>

参照:

于 2012-09-03T18:50:51.220 に答える