- PR -

【struts】メッセージリソースをjs関数のappendChild()で出力する方法

1
投稿者投稿内容
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-09-12 14:49
お世話になっております。

struts(java)に関連したご質問なので、
こちらのスレッドであげさせて頂きました。

処理上の理由で、strutsのvalidatorが使用できない為、
javaScriptのappendChild()を使用し、エラー文字をjspに出力させております。
(下記のソースを参照願います。)

ご質問の内容として、文字列は出力させることは出来るのですが、
メッセージリソースとして、jspに表示させる方法は可能なのでしょうか?


jsp------------------------------------

<html:form action="***">

<html:text property="date1">

<html:submit property="submit" value="送信" onclick="submitOn()"/>

<%-- エラー出力 --%>
<font color="red"><p id="pic">(※1)</p></font>

(※1)この箇所に<bean:message key="****"/>の
文字列を出力させたいです。

</html:form>

---------------------------------------

↓文字列出力のソースではございますが、
記載させて頂きます。
js------------------------------------

function submitOn() {

if(document.forms[0].date1.value == ""){

var textNode = document.createTextNode("エラーです");
var ele = document.createElement("pic");
ele.appendChild(textNode);

document.getElementById("pic").appendChild(ele);

return false;

}
}
---------------------------------------

お忙しいところ、大変申し訳ございませんが、
どなたかアドバイスを頂けませんでしょうか?

宜しくお願い致します。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-12 15:22
javascriptが動くのはクライアントにレスポンスが返った後なので
「メッセージリソースとして、jspに」ってのは無理でしょう。

とはいえ、
var textNode = document.createTextNode('<bean:message key="****"/>');
とかしたらできちゃうのかな。(jsをjspに書いてるなら)

ただ、
<p id="pic"><bean:message key="****"/></p></font>
としといてpicの可視不可視を切り替えた方がいいような気がします。
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-09-12 15:40
べる様

ご回答ありがとうございます。

私も試行錯誤する中、
べる様と同じことを実践してみたのですが、

1.textNode = document.createTextNode('<bean:message key="****"/>');
の場合、出力時に<bean:message key="****"/>とまんま文字列として、
表示されてしまいます。

2.<p id="pic"><bean:message key="****"/></p></font>
の場合、何故か可視不可視されず、最初からリソースファイルの
文字列を出力してしまっています。


他に方法はございますでしょうか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-12 16:48
引用:
2.<p id="pic"><bean:message key="****"/></p></font>
の場合、何故か可視不可視されず、最初からリソースファイルの
文字列を出力してしまっています。

このまま書けばmessageがある限り出力されるでしょう。たとえば
<p id="pic">を、スタイルシートのdisplayかvisibilityで見えないようにしておき、
必要に応じてjavascriptでスタイルを操作するってのがいいと思います。
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-09-12 17:27
べる様

ご回答ありがとうございます。

スタイルシートを使ったことがなかったので、
ググッて調べてみたのですが、
どれもソースが細かくて分かりづらいもの
ばかりでした。

出来ましたら、どのようにスタイルシートを記載すれば
予想通り動くようになるのか、ご教授願えませんでしょうか?

お忙しいところ、大変申し訳ございません。
宜しくお願い致します。
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-09-12 17:39
すみません。

下記のサイトを参考にしたところ、
予想通り、動くことができました。

js----------------------------------------------------
document.getElementById("pic").style.display='block';
------------------------------------------------------

jsp---------------------------------------------------
<p id="pic" style="display: none"><bean:message key="********"/></pic>
------------------------------------------------------


べら様、本当にありがとうございました。

http://www.tuyudaku.net/javascript/popup.html
1

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