ファイヤープロジェクト
taglibを使用したjspの作成
2003-07-20T15:13+09:00   matsu
Strutsでは,Strutsで提供されているtaglibを十分に活用してjspを作成すると,開発効率がよくなるかもしれない.
最後にjspを作成すれば完成である.ただし,これは今回たまため画面用ファイルとしてjspファイルしか使用していないからである.別にjspファイルでなくhtmlやServletを使用しても適切に必要なファイルを作成すれば動作はする.ここで示すサンプルにはtaglibが使用されているが,その詳細はまた別の機会に.また,面倒臭いので実際にどんなhtmlが表示されるのかは示さない.興味のある人はサンプルを試したください.サンプルのソースはページサンプルのソースとデプロイにあります.
index.jspはこのサンプルにおいてActionにパラメータを渡すためのページである.たとえば,$CONTEXT/Action1.do?message=hoge&globalFlag=trueなどを動的に指定するためのフォームを提供する.
<% /* $Id: taglib.xml,v 1.1.1.1 2003/08/12 14:45:44 matsu Exp $ */ %>
<%@page contentType="text/html; charset=EUC_JP" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html:html>
<head>
<title>Struts sample</title>
</head>

<body>
<h1>Struts sample</h1>

<h2>Action1</h2>
<html:form action="/Action1" >
<html:text property="message" size="20" maxlength="20" /><br />
<html:radio property="globalFlag" value="true">Global-Forward</html:radio><br />
<html:radio property="globalFlag" value="false">Local-Foward</html:radio><br />

<html:submit property="submit" value="送信" />
<html:reset value="リセット" />
</html:form>

<h2>Action2</h2>
<html:form action="/Action2" >
<html:text property="message" size="20" maxlength="20" /><br />
<html:radio property="globalFlag" value="true">Global-Forward</html:radio><br />
<html:radio property="globalFlag" value="false">Local-Foward</html:radio><br />
<html:text property="number" size="3" maxlength="10" /><br />

<html:submit property="submit" value="送信" />
<html:reset value="リセット" />
</html:form>

</body>
</html:html>
GlobalTypw2は論理名globalForward2の実際のForward先である.これは要素global-forwardsで記述されているので,どのアクションからでもForwardできるが,Type2Formgオブジェクトが存在しないとInternalServerErrorになる.
<% /* $Id: taglib.xml,v 1.1.1.1 2003/08/12 14:45:44 matsu Exp $ */ %>
<%@page contentType="text/html; charset=EUC_JP" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html:html>
<head>
<title>GlobalType2</title>
</head>

<body>
<h1>GlobalType2</h1>
このページはstruts-config.xmlの要素global-forwrdsの内容の要素forwardで指定したjspである.<br />
globalFlagは<br />
<bean:write name="Type2Form" property="globalFlag" /><br />
で,この値によって論理名globalForward2にForwardされた.<br />
<bean:write name="Type2Form" property="message" /><br />
上の文から,ActionFromBeanであるType2FormのデータをActionクラスであるAction2が変更したことがわかる.<br />
<bean:write name="Type2Form" property="number" /><br />
Type2Formの数字もAction2で処理されている.
</blockquote>
</body>
</html:html>
matsu(C)
Since 2002
Mail to matsu