0

私はliferayの初心者で、今はliferaycookbookでLiferayを学んでいます。ポートレットからjspページへのオブジェクトの送信に問題があります 。ここに私のポートレットがあります.InにLibraryPortlet.javaは関数があります:

public void searchBooks(ActionRequest actionRequest,
        ActionResponse actionResponse) throws IOException, PortletException {

    String searchTerm = ParamUtil.getString(actionRequest, "searchTerm");

    if (Validator.isNotNull(searchTerm)) {
        try {
            List<LMSBook> lmsBooks = LMSBookLocalServiceUtil
                    .searchBooks(searchTerm);

            actionRequest.setAttribute("SEARCH_RESULT", lmsBooks);
            actionRequest.setAttribute("test", "sentence to test");
            actionResponse.setRenderParameter("jspPage",
                    LibraryConstants.PAGE_LIST);

        } catch (SystemException e) {
            e.printStackTrace();
        }
    }
}

ファイルlist.jspに、私は持っています

List<LMSBook> booksTemp = (List<LMSBook>) request
        .getAttribute("SEARCH_RESULT");

List<LMSBook> books = Validator.isNotNull(booksTemp) ? ListUtil
        .copy(booksTemp) : LMSBookLocalServiceUtil.getLMSBooks(0,
        LMSBookLocalServiceUtil.getLMSBooksCount());
System.out.println("test: "+ request.getAttribute("test"));

ではlist.jsp、 liferaybooksTempnullオブジェクトLibraryPortlet.javaを jsp に送信できないため、「テストする文」という文字列を送信しようとしましたが、コンソールにテストが表示されます。null

誰でも同じ問題を抱えているので、助けてください!

4

1 に答える 1

0

最初に正しいリクエストを使用して属性を設定する必要があります。問題は、LibraryPortlet で のタイプを使用してPortletRequestおり、JSP のオブジェクトがHttpServletRequest.

あなたの場合、 でLibraryPortlet.java次の手順を実行します。

HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest);

request.setAttribute("SEARCH_RESULT", lmsBooks);

これは、設定している他の属性にも当てはまります。

于 2014-05-16T20:21:30.827 に答える