【Liferay開発のヒント】portletRequestとは?setAttributeってなに?
Liferay開発で悩んでいる人
Liferay開発やり始めたけど、わからない事を日本語で調べても出てこない..
厳密じゃなくてもいいから、ざっくりわかりやすく説明してあるサイトないかなあ
私はこんな悩みを抱えていました。もしかしたら、この記事を見に来たあなたもそうかもしれませんね!
【緊急学習開始】 Liferayって何?何がすごいのか、何を勉強すべきかを調べてみた
今回は、portletRequest, renderRequest, actionRequestについて、ざっくりアウトプットします!
もし間違っていたら、教えていただけるとありがたいです。
~Requestって何なの?
Javaが画面との情報の受け渡しをするときに用いる箱のようなものです。
setAttributeでJavaからデータを入れることができたり、getAtttributeでデータを取り出すことができます。(後述)
portletRequest, renderRequest, actionRequestの違いは?
~Requestが画面とJava間のデータの受け渡しに用いる箱だとお話しました。
portletRequestは3つの中でも一番ベースとなるものです。
renderRequest, actionRequestは、そのベース+αのものを持つことができます。(拡張版)
具体的に何を持つかについては、知識がついたら追記いたします。
~request.getAttribute / ~request.setAttribute
Liferayのコードを読んでいたらよく出会う2つのメソッドを紹介します。
画面と受け渡しするデータの取得/格納です。
getAttribute(String name, object obj)
指定された名前(第1引数)に紐づく属性を取得する。返却値:object
- name : 属性名を示す文字列
- obj : nameで指定された属性が存在しない場合は、objを返す。(省略可能)
setAtttribute(String name, object obj)
Name(第1引数)に紐づく属性(第2引数)を格納する。返却値:void
- name : 属性名を示す文字列
- obj : 属性にセットする値
こんな感じなのだが、いかんせんわかりにくいので具体例で説明します。
例①:格納するとき
request.setAttribute(“job”, “engineer”);
requestという変数の”job”という名前をつけた箱に”engineer”が入っているという意味。
例②:取得するとき
request.setAttribute(“job”);
requestという変数の”job”という名前の付いた箱の中身を取り出すという意味。
“engineer”が取得できる。
なぜAttributeなのかよくわかりませんが、英語の意味通り「set=格納、get=取得」と覚えています。