私は GateIn 3.6 のポートレットに取り組んでいます。現在、テーブル内のレコードを一覧表示するページを作成しました。ユーザーが任意の行をクリックすると、説明ページが表示されます。
現在、ユーザーが行をクリックすると、詳細ページが読み込まれますが、値は利用できません。私がやっている詳細はこちらです..
@RenderMode(name = "view")
public void display(RenderRequest request, RenderResponse response) throws PortletException, IOException, NamingException {
RecordsDAO recordsDAO = new RecordsDAOImpl();
// Records listing available on listing page
request.setAttribute("recordsList", recordsDAO.getAllRecords());
// tried to load record detail page when user click one row
if(actionJsp == null || actionJsp.equals("")){
getPortletContext().getRequestDispatcher("/jsp/ListRecords.jsp").
include(request, response);
} else {
getPortletContext().getRequestDispatcher("/jsp/DetailsBoxRecord.jsp").
include(request, response);
}
actionJsp = "";
}
そしてプロセスアクションは
@ProcessAction(name = "details")
public void details(ActionRequest request, ActionResponse response) throws PortletException, IOException {
RecordsDAO recordsDAO = new RecordsDAOImpl();
int id = Integer.parseInt(request.getParameter("id"));
RecordsForm recordsForm = recordsDAO.getRecord(id);
// way 1 set request attribute
request.setAttribute("details", recordsForm);
// way 2 set response attribute -- display error that cannot set Form type values
response.setRenderParameter("details", recordsForm);
actionJsp = "values";
}
オプション 1: request.setAttribute で RecordsForm タイプの値を設定しようとしましたが、完了しましたが、リクエストの値が jsp ページで使用できません。
オプション 2: response.setRenderParameter の使用 response.setRenderParameter で RecordsForm タイプの値を設定して、jsp ページでこれらの値にアクセスすることができません。
私の場合、どちらが正しい方法であるか、詳細ページをロードできるようにこれらの値をjspページでどのように使用できるかを教えてください。