解答例 - 実習課題2 - 6.HTMLタグライブラリ2
(実習課題2)
以下のWebアプリケーションを、Strutsを用いて作成しなさい。
- imageタグを用いて画像ボタンを作成する事。
- 押された座標を、beanタグライブラリのwriteタグを用いて表示する事。
解答例
▼ディレクトリ構成は以下の通り
.
├─com
│ └─techscore
│ └─struts
│ └─chapter6
│ └─exercise2 useImageTag.jsp,displayClickPoint.jsp
│ └─img submit.gif(どんなものでもいいのでイメージファイルを準備)
└─WEB-INF web.xml(実習課題1と同じ),struts-config.xml
├─classes
│ └─com
│ └─techscore
│ └─struts EncodingFilter.class(2章 実習課題2と同じ),
│ │ MessageResources.properties(中身は空)
│ └─chapter6
│ └─exercise2 ImageTagAction.class,ImageTagForm.class
├─lib strutsライブラリjarファイル
└─tld struts-bean.tld,struts-html.tld
※strutsライブラリjarファイル
struts.jar,commons-beanutils.jar,commons-collections.jar,commons-digester.jar,commons-logging.jar
/**
* ImageTagAction.java
* TECHSCORE Java JakartaStruts 6章 実習課題2
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*
*/
package com.techscore.struts.chapter6.exercise2;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ImageTagAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception{
return mapping.findForward("display");
}
}
/**
* ImageTagForm.java
* TECHSCORE Java JakartaStruts 6章 実習課題2
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*
*/
package com.techscore.struts.chapter6.exercise2;
import org.apache.struts.action.ActionForm;
public class ImageTagForm extends ActionForm{
public class Button{
private int x = 0;
private int y = 0;
public void setX(int x) {
this.x = x;
}
public int getX() {
return x;
}
public void setY(int y) {
this.y = y;
}
public int getY() {
return y;
}
}
private Button button = new Button();
public Button getButton(){
return button;
}
public void setButton(Button button){
this.button = button;
}
}
<!-- displayClickPoint.jsp -->
<!-- TECHSCORE Java JakartaStruts 6章 実習課題2 -->
<!-- Copyright (c) 2004 Four-Dimensional Data, Inc. -->
<%@ page contentType="text/html; charset=Windows-31J"
session="false"
pageEncoding="Windows-31J" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
prefix="html" %>
<html>
<head><title>TECHSCORE Java JakartaStruts 6章 実習課題2</title></head>
<body>
<p>ボタン押下位置の座標</p>
<p>x : <bean:write name="imageTagForm" scope="request" property="button.x" /></p>
<p>y : <bean:write name="imageTagForm" scope="request" property="button.y" /></p>
</body>
</html>
<!-- useImage.jsp -->
<!-- TECHSCORE Java JakartaStruts 6章 実習課題2 -->
<!-- Copyright (c) 2004 Four-Dimensional Data, Inc. -->
<%@ page contentType="text/html; charset=Windows-31J"
session="false"
pageEncoding="Windows-31J" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
prefix="html" %>
<html>
<head><title>TECHSCORE Java JakartaStruts 6章 実習課題2</title></head>
<body>
<p>ボタンを押してください。座標が表示されます。</p>
<html:form action="/com/techscore/struts/chapter6/exercise2/ImageTag.do" method="post">
<html:image page="/com/techscore/struts/chapter6/exercise2/img/submit.gif"
property="button" />
</html:form>
</body>
</html>
▼struts-config.xml
<?xml version="1.0" encoding="Windows-31J" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="imageTagForm"
type="com.techscore.struts.chapter6.exercise2.ImageTagForm" />
</form-beans>
<action-mappings>
<action path="/com/techscore/struts/chapter6/exercise2/ImageTag"
type="com.techscore.struts.chapter6.exercise2.ImageTagAction"
name="imageTagForm"
scope="request">
<forward name="display"
path="/com/techscore/struts/chapter6/exercise2/displayClickPoint.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.techscore.struts.MessageResources" />
</struts-config>
▼起動URLは以下の通り
WEB_ROOT/com/techscore/struts/chapter6/exercise2/useImageTag.jsp
EncodingFilter.javaの参照(2章の実習課題2と同じ)

