Struts

中まとめ2、TagLib を使ってエラー強調。(Lv.17)

Login.jsp(全部) <%@page contentType="text/html; charset=Windows-31J"%> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib…

中まとめ。(Lv.15)

Validator で積まれた ActionErrors(ActionMessages)のスクリプトレットでの取り出し方 <% ActionMessages errors = (ActionMessages) pageContext.findAttribute(Globals.ERROR_KEY); out.println(errors); %> Validator で積まれた全てのエラーメッセージ…

検証の続き。

ちなみに、昨日の最後の検証コードは思いっきり勘違いが入ってる事を発見。 Login.jsp(抜粋) <% Object o = request.getAttribute("error"); if (o instanceof ActionMessages) { out.println("ActionMessages<br>"); } else if (o instanceof ActionErrors) { o…

再び検証の旅へ。

再び。Login.jsp でテスト。Login.jsp(修正版、全部) <%@page contentType="text/html; charset=Windows-31J"%> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-l…

全く別のアプローチで。

C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\struts-examples\validator\type.jsp type.jsp(抜粋) <body bgcolor="white"> <logic:messagesPresent> <bean:message key="errors.header" /> <ul> <html:messages id="error" property="byte"> <li> <bean:write name="error" /> </li> </html:messages> <…</ul></bean:message></logic:messagespresent></body>

さらに深く潜行する。

Struts 1.2.4 にバンドルされている Apache commons Validator のバージョンは1.1.3 だと解かったので、それのソースを拾いに出かける。http://jakarta.apache.org/site/sourceindex.cgi#commons-validatorよく解からないけど、ここでは Commons Validator …

Taglib の理解 実験編(Html:message タグ)

挫折感ありありで全てを投げ出して、海まで走り出したい気分なんやけど、こんなとこでは止まれない。BeanTest.jsp(完全) <%@page contentType="text/html; charset=Windows-31J"%> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/ta…

Taglib の理解 実験編(Beanタグ)

ここで、大胆に方針転換して JSP 上でリアルな JavaBean の使い方と組み合わせて Bean タグの動作を理解してみようと思う。BeanTest.jsp(完全) <%@page contentType="text/html; charset=Windows-31J"%> <%@ taglib uri="/tags/struts-html" prefix="html" %…

Taglib の使い方 実験編(Html:messages タグ)

目の前の目標はこの部分の理解なんやけど、ちょっと謎があって <html:messages id="error" property="byte"> <li> <bean:write name="error" /> </li> </html:messages> type.jsp(抜粋) 01: <logic:messagesPresent> 02: <bean:message key="errors.header" /> 03: <ul> 04: <html:messages id="error" property="byte"> 05: <li> 06: </li></html:messages></ul></bean:message></logic:messagespresent>

Taglib の使い方 実験編(Bean:write タグ)

まずは、このページとか見て Bean タグの雰囲気をつかんで、後は感性の赴くまま試行錯誤してみよう。http://struts.apache.org/api/org/apache/struts/taglib/bean/package-summary.html#package_descriptionふむふむ、なんかかなり高機能な Taglib っぽいな…

Taglib の使い方 準備編

とりあえず、Bean タグを使おうと思ったら、こう書くのがお作法らしい。 uri="/tags/struts-bean" prefix="bean" %> でも、ウェブでサンプルを調べると uri="/WEB-INF/struts-bean.tld" prefix="bean" %> こういう風に書いてる例がかなりある。Struts のバー…

不満解消。

実行結果(ママ) ユーザーID を入力してください。パスワード を入力してください。 名前: パスワード: でもさ、でもさ。楽勝ってなったらディテール(枝葉、細部)が気になってくるのが人間が本来持ってる幸福論やん?詭弁を駆使するなら、満足しちゃったら…

省エネルギー対応。

クライアントサイドの入力チェック。 2箇所変更するだけ、formName はクラス名じゃダメっぽい。マニュアル調べな。Login.jsp(完全) <%@page contentType="text/html; charset=Windows-31J"%> <%@taglib uri="/tags/struts-html" prefix="html"%> <html:html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Windows-31J"> </meta></head></html:html>

DynaActionForm ちょっと横道。(2)

Srikanth Shenoy's Blog(Struts Survival Guide: Basics to Best Practices (J2ee Survival Series)の著者) http://weblogs.java.net/blog/srikanth/archive/2004/01/actionform_or_d.html に DynaActionForm なんか使っちゃダメよ!って書いてある(らしい…

DynaActionForm ちょっと横道。

タグにある initial 要素がやっぱ気になるよね?例えば、これを って変えたら、初期表示で出てくるんやろか?ババン!(3度目)出たー!やっぱそうなんかーこれは便利な気がする。ActionForm の場合コンストラクタで設定するかになると思われる。(実験して…

DynaActionForm 実践編。

LoginAction.java import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward…

DynaActionForm に挑戦。

これまで使ってた ActionForm とは、だいたい的に定義しちゃえば、HTMLフォームで設定された内容は、サブミットボタンのクリックによりHTTPプロトコルでHTTPリクエストメッセージのPOST/GETメソッドのパラメータとしてサーバーに転送される。 その時、送られ…

ここまでのまとめ。

最終的なソース LoginForm.java(WEB-INF/classes) import org.apache.struts.validator.ValidatorForm; public class LoginForm extends ValidatorForm { private String userID; private String password; public String getPassword() { return password; …

勝利の予感。

こころはとらえるしょーーりのよかん。りょうてはつかむふくらみゆくきぼう。 で、両方も項目空っぽのまま、ババン!(5度目) ユーザーID を入力してください。パスワード を入力してください。 入力してください、入力してください、・・・ください・・・…

中ボス登場。(3)

とりあえず、捜査に行き詰ったら現場に立ち戻れの格言通り。現場(struts-config.xml)を見てみる。って言うかビンゴ。で、struts1.2.4 付属の validator サンプルをじっくり見返して、 struts-config.xml をこんな感じに変えてリソースのファイルが誰か教える…

中ボス登場。(2)

このカタカナに訳されてる"キー"ってのと、まんま思いっきり固有名詞炸裂してる"org.apache.struts.action.MESSAGE"が誰の話なんかは全然ワカランけど、長年の経験と勘からエラーを表示さえようとしてるけど、それ用の文字列のリソースが取得できないとかっ…

中ボス登場。

で、ババン!(3度目) HTTPステータス 500 - -------------------------------------------------------------------------------- type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this…

名探偵再び。(2)

さっきの stdout.log の内容から、validate 関数の呼び出しに使われたアクションは LoginAction でリクエスト元は Login.jsp だと判断できる。 struts-config.xml 内の記述 validate = true と input = "Login.jsp" であると言う事。とこれまでのエンジニア…

名探偵再び。

実はこういうケースが一番困る。何らかの設定にミスがあるにもかかわらず、書式にエラーなどがあるわけでは無く、期待の動作をしないだけで無く、何処がおかしいのか見つけるのが非常に難しい。(この日本語もひじょーに難しい)まずは当たり前の動作を1つ…

実験開始。

ただいま23:12。もうすぐ月曜日や。とりあえず作業段取りにしたがってやることやっちゃおう。1.validation.xml の記述。 validation.xml(間違ってる)

バリデータに挑戦。

sika さんからの情報もあり、あえて Validator に突入してみることに。 気分的にはまだまだ遠いわ、Hibernate らりるれりらりるれりらりるれるって感じ。 Validator プラグインを使う為に必要な準備やる事 struts-config.xml の拡張 Validator の Plugin を…

ここまで総括(Lv.4)

とりあえず、Login.do! が出来たってとこで力尽きた感じ。 あんまり関係無さげな .jar とか .tld とか、何の役にたってるのかワカランのとか置きたく無くって、ちょっと頑なに突っぱねたけど無駄に時間使ったね。次はやっぱ Validator? それとも、もうちょっ…

Run&Debug 完結編

さー息を整え。じゃららららららららーとドラムロール流れる中http://localhost:8080/test/Login.jsp それ!名前: パスワード:でたーらっくしょう!(強がり&大嘘) 正常ページと失敗ページへの遷移も成功。うおおおおおおおおおおおぉぉぉぉぉぉぉ勝利の…

Run&Debug 死闘編(2)

WEB-INF/struts-html.tld をコピー&ゴー(*.jar 系は WEB-INF/lib で *.tld 系は WEB-INF/ にコピる)http://localhost:8080/test/Login.jsp それ! HTTPステータス 500 - ------------------------------------------------------------------------------…

Run&Debug 死闘編

で、仕切りなおしてhttp://localhost:8080/test/Login.jsp それ! HTTPステータス 500 - -------------------------------------------------------------------------------- type 例外レポート メッセージ 説明 The server encountered an internal error …