解答例 - 実習課題1 - 3.Beanタグライブラリ
(実習課題1)
以下のWebアプリケーションを、Strutsを用いて作成しなさい。
- 以下のプロパティを持っているJavaBeansクラスを作成する事。
- int型の値
- Stringの配列
- java.util.List
- java.util.Map
- defineタグを用いて、上記クラスのインスタンスのプロパティを変数として定義する事。またその値を表示する事。
解答例
▼ディレクトリ構成は以下の通り
. ├─com │ └─techscore │ └─struts │ └─chapter3 │ └─exercise1 useTestBean.jsp └─WEB-INF web.xml ├─classes │ └─com │ └─techscore │ └─struts EncodingFilter.class(2章 実習課題2と同じ) │ └─chapter3 │ └─exercise1 TestBean.class ├─lib strutsライブラリjarファイル └─tld struts-bean.tld ※strutsライブラリjarファイル struts.jar,commons-beanutils.jar,commons-collections.jar,commons-digester.jar,commons-logging.jar
/** * TestBean.java * TECHSCORE Java JakartaStruts 3章 実習課題1 * * Copyright (c) 2004 Four-Dimensional Data, Inc. * */ /* * 作成日: 2004/08/24 新規作成 * */ package com.techscore.struts.chapter3.exercise1; import java.util.Map; import java.util.HashMap; import java.util.List; import java.util.LinkedList; public class TestBean { public TestBean getBean(){ return new TestBean(); } public int getTestInt(){ int testInt = 3; return testInt; } public String[] getTestString(){ String[] testString = {"文字列0", "文字列1"}; return testString; } public List getTestList(){ List testList = new LinkedList(); testList.add("リスト1"); testList.add("リスト2"); return testList; } public Map getTestMap(){ Map testMap = new HashMap(); testMap.put("mapkey0", "マップ0"); testMap.put("mapkey1", "マップ1"); return testMap; } }
<!-- useTestBean.jsp --> <!-- TECHSCORE Java JakartaStruts 3章 実習課題1 --> <!-- Copyright (c) 2004 Four-Dimensional Data, Inc. --> <%@ page contentType="text/html; charset=Shift_JIS" session="false" pageEncoding="Shift_JIS" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> <html> <head><title>TECHSCORE Java JakartaStruts 3章 実習課題1</title></head> <body> <jsp:useBean id="testBean" class="com.techscore.struts.chapter3.exercise1.TestBean" scope="request" /> <bean:define id="bean_int" name="testBean" scope="request" property="testInt" /> <p>TestBean testInt : <%=bean_int %></p> <bean:define id="bean_string0" name="testBean" scope="request" property="testString[0]" /> <p>TestBean testString[0] : <%=bean_string0 %></p> <bean:define id="bean_string1" name="testBean" scope="request" property="testString[1]" /> <p>TestBean testString[1] : <%=bean_string1 %></p> <bean:define id="bean_list0" name="testBean" scope="request" property="testList[0]" /> <p>TestBean testList[0] : <%=bean_list0 %></p> <bean:define id="bean_list1" name="testBean" scope="request" property="testList[1]" /> <p>TestBean testList[1] : <%=bean_list1 %></p> <bean:define id="bean_map0" name="testBean" scope="request" property="testMap.mapkey0" /> <p>TestBean testMap.mapkey0 : <%=bean_map0 %></p> <bean:define id="bean_map1" name="testBean" scope="request" property="testMap.mapkey1" /> <p>TestBean testMap.mapkey1 : <%=bean_map1 %></p> </body></html>
<?xml version="1.0" encoding="Windows-31J" ?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"> <web-app> <filter> <filter-name>Encoding</filter-name> <filter-class>com.techscore.struts.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>Windows-31J</param-value> </init-param> </filter> <filter-mapping> <filter-name>Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>Action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>6</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
▼起動URLは以下の通り
WEB_ROOT/com/techscore/struts/chapter3/exercise1/useTestBean.jsp
EncodingFilter.javaの参照(2章の実習課題2と同じ)