- PR -

携帯_固体識別番号を送信させたいのだが。。。

投稿者投稿内容
さと丸
会議室デビュー日: 2006/01/24
投稿数: 19
投稿日時: 2006-04-05 14:10
Strutsを使用したWEBシステムを構築しているのですが行き詰まりました。
strutsのカスタムタグ(HTMLタグ)を使用し、携帯の固体識別番号を
送信したいのですが、以下のようにエラーになってしまいます。
utnのうまい書き方ありますかね?

エラー内容
org.apache.jasper.JasperException: /pages/Login.jsp(13,31) 等号記号が必要です

ソース抜粋
<html:form action="/login" utn>
ID<br>
<input type="text" name="id" size="14" maxlength="20" istyle="4"><br>
PASS<br>
<input type="text" name="pass" size="14" maxlength="127" istyle="4"><br>
<input type="submit" name="req_btn" value="送信">
</html:form>


すいません。ご教授頂きたいです。よろしくお願い致します。

[ メッセージ編集済み 編集者: さと丸 編集日時 2006-04-05 14:13 ]
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-04-05 14:25
SGML的には、「<form utn>」は「<form utn="utn">」と同値です。後者の記述で JasperException が回避できるかどうか、実際に携帯電話が個体識別番号を送ってくれるかどうかは知りませんが。
さと丸
会議室デビュー日: 2006/01/24
投稿数: 19
投稿日時: 2006-04-05 14:37
スフレさん早速ありがとうございます。
すぐに対応してみたのですが、JasperExceptionは回避できませんでした。

また、携帯電話が個体識別番号を送ってくれるかどうかは、
今回は送ってくれたらユーザが便利な機能になるので、平気だと考えています。
とはいえ、送ってくれるかは心配です。

エラー内容
org.apache.jasper.JasperException: /pages/Login.jsp(13,1) TLDによると、タグ form の属性 utn は無効です

ソース抜粋
<html:form action="/login" utn="utn">
ID<br>
<input type="text" name="id" size="14" maxlength="20" istyle="4"><br>
PASS<br>
<input type="text" name="pass" size="14" maxlength="127" istyle="4"><br>
<input type="submit" name="req_btn" value="送信">
</html:form>
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-04-05 14:59
html:formタグには、そもそもurn属性は存在しません。
タグの属性にどんな種類があるのかは、
リファレンスやstruts-html.tldを参照してください。

カスタマイズを行うには、
・Strutsのhtml:formタグに該当するクラスを継承する
・urn属性に対応するメソッドを追加
・tldファイルを作成
・web.xmlにtlbファイルを指定
と、手順を踏む必要がありますが、Strutsのタグライブラリのソースや、
struts-html.tldを参考にすれば比較的簡単にできると思います。
さと丸
会議室デビュー日: 2006/01/24
投稿数: 19
投稿日時: 2006-04-05 15:26
struts-html.tldなんて。。意識にもなかったです
ちょっと自分的には難しそうなんですが
試してみます。

utnタグって
使用しないものなのですかね?
あってもいいような気もするのですが。
yamasa
ベテラン
会議室デビュー日: 2003/02/15
投稿数: 80
投稿日時: 2006-04-05 15:40
こちらのスレッドが参考になりますよ。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27513&forum=12
さと丸
会議室デビュー日: 2006/01/24
投稿数: 19
投稿日時: 2006-04-05 15:56
かなり参考になります
すぐに試しにやってみます

↓これもistyle使えなくてもろのhtmlタグを使ったんですよね。。。
<input type="text" name="req_pass" size="14" maxlength="127" istyle="4">
さと丸
会議室デビュー日: 2006/01/24
投稿数: 19
投稿日時: 2006-04-05 17:50
以下の対応を対応したところ
utnタグが有効になりません。
根本的なことが分かっていないため、
どこが悪くて有効になっていないのかが
検討が付きません。

すぐに今から調べますが、
できればご教授ください
申し訳ございません

●struts-html.tldに下記追加

<tag>
<name>exform</name>
<tagclass>aaa.util.ExformTag</tagclass>
<attribute>
<name>utn</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>action</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>

●ExformTagクラス作成 org.apache.struts.taglib.html.FormTag継承

package aaa.util;
public class ExformTag extends org.apache.struts.taglib.html.FormTag{

 private String utn;

 public String getUtn() {
  return utn;
 }
 public void setUtn(String utn) {
  this.utn = utn;
 }
}

●JSP
<html:exform action="/login" utn="utn">
ID<br>
<input type="text" name="id" size="14" maxlength="20" istyle="4"><br>
PASS<br>
<input type="text" name="pass" size="14" maxlength="127" istyle="4"><br>
<input type="submit" name="req_btn" value="送信">
</html:exform>

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