クライアント側のフォーム検証のために、JSFでjQuery Validateプラグインを使用したいと思います。リソースのインポートに基本的な困難を感じています。
私のJSFページには
<h:outputScript library="js" name="jquery-1.6.2.js"></h:outputScript>
<h:outputScript library="js" name="jquery.validate.js"></h:outputScript>
<h:outputScript library="js" name="jquery.maskedinput.js"></h:outputScript>
<h:outputScript library="js" name="myapp.validate.js"></h:outputScript>
Firefoxの[スクリプト]タブをクリックしても、ドロップダウンにスクリプトファイルが表示されません。表示されるメッセージがあります:
タグに「type」属性がある場合、「text/javascript」または「application/javascript」と同じにする必要があります。また、スクリプトは解析可能でなければなりません(構文的に正しい)。
さらに、マウスのホバー、非表示、表示などのjquery効果が機能しません。通常のスクリプトタグで試しました
<script type="text/javascript" src="../js/jquery-1.6.2.js"></script>
<script type="text/javascript" src="../js/jquery.validate.js"></script>
<script type="text/javascript" src="../js/jquery.maskedinput.js"></script>
<script type="text/javascript" src="../js/myapp.validate.js"></script>
それは役に立たなかった。それでも私のJSファイルを見つけることができませんでした。すべてのJSファイルは
Web pages
|_ js
|_jquery-1.6.2.js,my.validate.js,jquery.validate.js,jquery.maskedinput.js
JSF 2.0のリソースでjQueryを使用する に投稿されたソリューションの1つを試しましたが、成功しませんでした。
親切に私にこれに対する解決策を提案してください。コードをJSPからJSFに移動し、検証がすでに記述されているため、ajaxでJSF組み込み検証を使用したくありません。以前に書いた既存のjQuery Validationを再利用したいと思います。
<h:outputScript>
(および<h:outputStylesheet>
)は、/resources
フォルダからリソースをロードします。スクリプトをそのフォルダーに配置する必要があります。
WebContent
|-- resources
| `-- js
| |-- jquery-1.6.2.js
| |-- myapp.validate.js
| |-- jquery.validate.js
| `-- jquery.maskedinput.js
|-- WEB-INF
:
次に、次のスクリプト宣言が機能します。
<h:outputScript name="js/jquery-1.6.2.js" />
<h:outputScript name="js/jquery.validate.js" />
<h:outputScript name="js/jquery.maskedinput.js" />
<h:outputScript name="js/myapp.validate.js" />
(「js」という名前は 実際のライブラリ を示していないため、library
属性を省略したことに注意してください==)
<script>
アプローチが失敗したのは、誤った相対パスを使用したことが原因と考えられます。リソースは、サーバー側のディスクファイルシステム内のパスではなく、現在の要求URLに関連して解決されることを理解する必要があります。