Beanを変数で定義するには 、<bean:define>タグを使用します。
<html:define>タグの主要属性
属性 | 概要 |
id | JSP内で使用する変数名を指定します。 |
name | 定義対象のオブジェクトの名前を指定します |
property | Beanのプロパティを指定します。 |
type | idに代入するオブジェクトのクラスを指定します。プリミティブ型の場合はラッパークラスを指定します。 |
scope | name属性で指定した定義対象のオブジェクトが格納されているセッションのスコープを指定します。 省略時はpage、request、session、applicationの順で検索されます。 |
toScope | id属性で指定するBeanを格納するセッションのスコープ。省略時はrequest |
クッキー登録JSP
<%@ page pageEncoding = "Shift_JIS" %> <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%-- 文字列”こんばんは”を変数”stringMessage”で定義する --%> <bean:define id="stringMessage" value="こんばんは" /> <%-- セッションkey"userdata"のUserDataオブジェクトを変数”udata”で定義する --%> <bean:define id="udata" name="usrdata" type="sample.bean.UserData" /> <&-- セッションkey"userdata"のUserDataオブジェクトのプロパティ”userId”を変数”uid”で定義する --%> <bean:define id="uid" name="usrdata" type="java.lang.String" property="userId" /> <html><body> <%=stringMessage %> <br> <%=udata.getUserId() %> <br> <%-- プロパティ”userId”を出力する --%> <bean:write name="udata" property="userId" /> <br> <%=uid %> <br> <bean:write name="uid" /> <br> </body></html> |
変数”uid”には、UserDataオブジェクトのuserIdプロパティを格納するので、type属性にはStringクラスを指定する。
UserDataオブジェクトをセッションkey”usrdata”でセッションに登録
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { UserData data = new UserData(); data.setUserId("id01"); data.setUserName("name01"); request.setAttribute("usrdata", data); return mapping.findForward("success"); } } |
画面イメージ