Strutsリファレンス(逆引き)

Strutsリファレンス
 
Web struts.wasureppoi.com
ネストしたプロパティにアクセスする<nested:root、nest>
スポンサード リンク


ネストしたプロパティにアクセスするには、<nested:root>タグや<nested:nest>タグを使用します。

<nestted:root>や<nested:nest>タグを使用しなくても、ドットで区切ってネストしたプロパティを指定できますが、 これらのタグを使用することで、特に大量のプロパティを指定する場合など表現が簡素化できます。

例1)JSP実装例

<%@ page pageEncoding = "Shift_JIS" %>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/tags/struts-nested" prefix="nested" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<html><body>

<%-- <bean:write>タグだけでBeanの情報を出力 --%>
ID:<bean:write name="NestedForm" property="userData.userId" /><br>
氏名:<bean:write name="NestedForm" property="userData.userName" /><br>
その他:<bean:write name="NestedForm" property="stringData" /><br>

<hr>

<%-- <nested:root>タグと<nested:write>タグでBeanの情報を出力 --%>
<nested:root name="NestedForm" >
  ID:<nested:write property="userData.userId" /><br>
  氏名:<nested:write property="userData.userName" /><br>
  その他:<nested:write property="stringData" /><br>
</nested:root>

<hr>

<%-- <nested:root>タグと<nested:nest>タグと<nested:write>タグでBeanの情報を出力 --%>
<nested:root name="NestedForm" >
  <nested:nest property="userData" >
    ID:<nested:write property="userId" /><br>
    氏名:<nested:write property="userName" /><br>
  </nested:nest>
  その他:<nested:write property="stringData" /><br>
</nested:root>

</body></html>

<html:form>タグ内の場合は、<nested:root>タグの指定は不要です。
<nested:nest>タグは、<nested:root>以下で、ネストしている数だけ指定できます。
<nested:root>タグや<nested:nest>タグ内で、プロパティにアクセスするには、<nested:write>タグ、<nested:text>、<nested:select>などの、<nested:〜>のstruts-htmlやstruts-beanやstruts-logicのnested拡張タグを使用します。

画面イメージ



スポンサード リンク


アクションフォーム定義

<form-bean
    name="NestedForm"
    type="org.apache.struts.validator.DynaValidatorForm" >
   <form-property  name="userData" type="sample.nested.UserData" />
   <form-property   name="stringData" type="java.lang.String" />
</form-bean>

ーーーーーー UserData抜粋 ーーーーーーーー
public class UserData {

  private String userId;
  private String userName;

  public String getUserId() {
    return userId;
  }

  public void setUserId(String userId) {
    this.userId = userId;
  }

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }
}




Beanをセッションに格納(アクションクラス抜粋)

public ActionForward execute(ActionMapping mapping,
                   ActionForm form,
                   HttpServletRequest request,
                   HttpServletResponse response) {

   // 入力フォームを取得
  DynaActionForm inform = (DynaActionForm)form;

  UserData data = new UserData();
  data.setUserId("userid01");
  data.setUserName("name01");
  inform.set("userData", data);
  inform.set("stringData", "AAAA");

  return mapping.findForward("success");
}




スポンサード リンク


ネストしたプロパティにアクセスする<nested:root、nest>

カスタムタグへ
忘れっぽいエンジニアのJakarta Strutsリファレンス TOPへ