- PR -

JSPで固定値でない属性値を用いる場合のValidateの実装方法について

1
投稿者投稿内容
Yasyu
会議室デビュー日: 2004/11/04
投稿数: 9
投稿日時: 2004-11-04 17:18
はじめまして。

JSP内のある項目の属性値を取得する方法が分からなくて
教えていただきたいと思い、書き込みました。

使用している環境は以下の通りです。
 WindowsXPPro SP2
 Tomcat 5.0.29
 JDK 1.4.2_06
 Struts 1.2.4

具体的な内容を以下に示します。

<%@ page contentType="text/html; charset=Windows-31J" %>
<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %>
<html:html>
<head>
<title>ログオン画面</title>
</head>
<body bgcolor="#ffffff">
<center>
<h3>ログオン画面</h3>
<html:form action="/logon">
<html:errors />
<table border="0">
<tr>
<td>社員番号:</td>
<td><html:text property="empno" size="20" maxlength="30" /></td>
</tr>
<tr>
<td>パスワード:</td>
<td><html:password property="password" size="20" maxlength="30" /></td>
</tr>
</table>
<br>
<br>
<html:submit value="ログオン" />
</html:form>
</center>
</body>
</html:html>

15行目の
<td><html:text property="empno" size="20" maxlength="30" /></td>
の箇所の"maxlength"の値をとりたいのですが、とり方が分かりません。

maxlengthについてvalidateを行いたいのですが、
DBに登録されているXML値からJSPファイルを作成するため、
maxlengthが固定値でないものを扱わなければいけないのです。

どなたかご教授お願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-11-04 20:17
>の箇所の"maxlength"の値をとりたいのですが、とり方が分かりません。
レンダリング済みのhtmlからJavaScriptで属性値を取得したいということでしょうか?
#その値ってあなたが決めた物ではないのですか?

>maxlengthが固定値でないものを扱わなければいけないのです。
よく意味がわからなかったのですが、maxlength が指定されていれば固定されてしまうのではないでしょうか?
Yasyu
会議室デビュー日: 2004/11/04
投稿数: 9
投稿日時: 2004-11-04 20:40
分かりづらくてすみません。

>>の箇所の"maxlength"の値をとりたいのですが、とり方が分かりません。
>レンダリング済みのhtmlからJavaScriptで属性値を取得したいということでしょうか?
>#その値ってあなたが決めた物ではないのですか?
このmaxlength="30"となっているのは、一例として書いたもので、実際は20かもしれないし40かもしれないです。画面を初期表示する際に、DBからJSP用のXML値を取得して、JSPを生成する仕様です。
できればjavaScriptではなく、サーバ側で判定を行いたいです。


>>maxlengthが固定値でないものを扱わなければいけないのです。
>よく意味がわからなかったのですが、maxlength が指定されていれば固定されてしまう>のではないでしょうか?
上記のとおり、画面を初期表示するまではmaxlengthの値は不明です。

いかがでしょうか。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-11-04 20:53
自分でレンダリングした html であればその時点で取得できているのではないか、と思いますが・・?
そのフォームをポストした際に maxlength の値を取得したいということであれば、http のリクエストにそのような情報は含まれていませんので無理です。
hidden のパラメータとして埋め込んでおくなどの工夫をしてみてはいかがでしょうか?

以下のようなツールで一度 http のリクエスト/レスポンスがどのようになっているか覗いて勉強することをオススメ致します。
パケットキャプチャ系
・Ethereal
http://www.ethereal.com/
・Packetyzer
http://www.networkchemistry.com/products/packetyzer/

プロキシ系
・Apache Axis > Appendix : Using the Axis TCP Monitor (tcpmon)
http://ws.apache.org/axis/java/user-guide.html
・横取り丸
http://hide.maruo.co.jp/software/ydm.html
おっきー
大ベテラン
会議室デビュー日: 2003/05/01
投稿数: 104
投稿日時: 2004-11-04 21:01
え?データベースにはいっているということは不明ではないですよね?
Yasyu
会議室デビュー日: 2004/11/04
投稿数: 9
投稿日時: 2004-11-04 21:14
属性値はサーバにポストできないことを分かってませんでした。
ご指摘のとおりhiddenで値を受け取る方法がいいと思いました。
ありがとうございました。

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-11-04 22:41
>え?データベースにはいっているということは不明ではないですよね?
そ、そうですよね。DBからmaxlengthの元となった値を再度取り出してくるんでもイケそうですね。
1

スキルアップ/キャリアアップ(JOB@IT)