- PR -

validate-rules.xmlのJavaScriptが画面に表示されてしまう

1
投稿者投稿内容
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-09-18 14:59
いつもお世話になっています。
現在、Tomcat上でローカルテストを行っているのですが、本番環境は
Oracle9iASで行います。
そこで、本番環境にセットし今までいろいろ設定を行って動かせるようになりました。
しかし、そこで件名の問題が発生しました。
画面は自分が作成しているところではないのですが、Tomcat上で動かしている分には
出ていなかったのに、本番環境上で動かしたものでは思いっきり画面にvalidate-rules.xml
に記述されているJavaScriptが表示されます。
その原因を調べるにあたってチェックする場所を切り分けたいのですが、
1.Oracle9iASで動かす場合とTomcatで動かす場合に何か特別な記述は必要なのでしょうか?(設定ファイル)
2.変更するとしたら、どのファイルが対象になるのでしょうか?
3.変更する必要が無い場合、考えられる原因はどういうことがあるのでしょうか?

現在は、最低限の状態でテストを行っていますのでvalidator-rules.xmlファイルは初期状態のものを利用しています。

以上、よろしくお願いいたします。
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-09-18 15:04
すいません。環境を書き忘れたので追記します。
ローカル環境:
 Tomcat4.1.24
Struts1.1正式版
 OS:Windows 2000 or XPPro
本番環境:
Oracle9iAS 9.0.2.0.0
OS:Linux(詳細は確認していません)
とおる
会議室デビュー日: 2003/09/18
投稿数: 10
投稿日時: 2003-09-18 15:51
> 本番環境上で動かしたものでは思いっきり画面にvalidate-rules.xml
> に記述されているJavaScriptが表示されます。

これは、具体的にはどういうことなのでしょうか。
(1)http://**/validate-rule.xml
などとブラウザからアクセスすると、
そのファイルの中身がブラウザに表示されてしまう。
(2)ブラウザからサーバになんらかの要求を行うと、
ブラウザにJavaScriptのコードが表示される。
(3)ブラウザからサーバになんらかの要求を行い、
その結果を表示させ、ブラウザの「ソースの表示」で
結果を見てみると、JavaScriptのコードが存在する。
(4)その他

(3)だとした場合、
結果を表示するjspファイルに
以下のような記述をしていると思うのですが、
dynamicJavascript, staticJavascriptといった
属性の設定値が一番最初に頭に浮かびました。

<html:javascript formName="hogeForm" dynamicJavascript="true" staticJavascript="true"/>

でも、Tomcatの環境とjspファイルの中身は同じなのですよね?

※初心者の独り言と無視してください^^;
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-09-18 16:11
とおるさん、回答ありがとうございます。
その番号からいくと、(2)で、functionが全て表示されます(正常に動いているときはコメントで画面上には表示されない部分です)

Tomcatで動かしていたJSP,JAVAファイル、warファイルをそのままあげています
とおる
会議室デビュー日: 2003/09/18
投稿数: 10
投稿日時: 2003-09-18 16:30
> (2)で、functionが全て表示されます
> (正常に動いているときはコメントで画面上には表示されない部分です)

なるほど。
JavaScriptのコメントアウトができていないのですね。
どのようにコメントアウトが上手くいってないのでしょうか。
私の乏しい想像力では、
コメント内のJavaScriptコードでも、コメントアウトしてあって
コメントアウトの対応が上手く取れていないのではと思いました。

ex)
<!-- JavaScript Begin
・・・・・

--> (※)

・・・
// JavaScript End -->

実際にJavaScriptコードが画面に表示されてしまう
HTMLをソース表示でみて、
何故画面に表示されてしまうのか
追求してみるのはいかがでしょうか。
そうすると、それに関連したJavaScriptコードを
記述したvalidate-rule.xmlに
問題が見つかるかもしれません。

※ただServletコンテナを変えただけなのに
なんで動かなくなるのか?という疑問は
最もですが、原因究明の1つとして
調査してみる価値はあると思います。
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-09-19 14:06
優先度が高い作業にまわされてすぐにチェックできませんでした(苦笑
ローカルで表示したjspとoc4jから読んできて表示に不具合の有るvalidateの相違を
見てみました。
すると、下記の表示が出ていませんでした。

<script type="text/javascript" language="Javascript1.1">

<!-- Begin

var bCancel = false;

function validateOrgBaseForm(form) {
if (bCancel)
return true;
else
return validateMask(form) && validateMaxLength(form) && validateRequired(form) && validateEmail(form);
}

function mask () {
.....
}
function maxlength () {
.....
}
function required () {
.....
}
function email () {
.....
}

※(ここからのfunction validate〜は表示されている)
//End -->
</script>

というふうになっています。要は、※以外のJavaScriptの宣言、
本来関数を呼ぶ部分、コメント(非表示)記述がごっそり抜けています。

こうなってくると、あとはvalidation関係の設定ファイルの問題なのでしょうか。。。
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-09-19 16:55
解決レスです。

どうも、struts-config.xmlファイルに記述してあったはずのvalidate.xmlが消されていて、
それがエラーとはならずにコメントで囲われなかったようです。

テストでいじっていたconfigファイルが何らかの拍子で書き換わっているとは思わなかったので・・・・

単純なミスでいろいろお世話になりました。
ありがとうございました。
1

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