0

クライアント側の検証は私には機能しません。最初は、ルートフォルダにコピーされないのはmyeclipseの障害だと思いましたが、その後、jsファイルとcssファイルがstrutsコアjarに存在することを発見しました。今、私は何をすべきか疑問に思います!すべてのjsファイルとcssファイルを見つけて適切なフォルダーからwebRootにコピーする必要がありますか、それとも構成を変更するなどのインテリジェントな回避策がありますか?支柱はそれらを自分でコピーする必要がありますか?

ストラット付きのタイルを使用しています。それが問題でしょうか?

私のJSPファイルはWEB-INFフォルダーにあります!それは何か問題を引き起こした可能性がありますか?

struts2-jqueryプラグインのようなものを使用して私の問題を解決できますか?

struts2を使用しています!

私のstruts2フィルター構成は

  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.action</url-pattern>
  </filter-mapping>

    <listener>
    <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
4

2 に答える 2

3

ここでの特定の問題は、フィルター構成です。

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.action</url-pattern>
</filter-mapping>

推奨される構成は (何をしているのか具体的にわかっていない限り)、次のようにマップすることです*

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*</url-pattern>
</filter-mapping>

のみにマップすると*.action、非アクション リクエスト (CSS や JavaScript など) はフィルタによって処理されません。S2 は、独自の CSS ファイルや JavaScript ファイルなど、S2 が認識しているファイルのリクエストを調べ、アクション リクエストではない場合でも、それらのリクエスト自体を処理します。

これは、S2 ガイドの静的コンテンツ セクションに記載されています。

へのマッピングは完全に有効です*.actionが、少なくともデフォルトの S2 テーマ/JavaScript を使用する場合は、静的ファイルを抽出して必要な場所に配置する必要がありますこれもオプションです。フレームワークは比較的迅速に開始できるように設計されていますが、フレームワークが処理できない特定のニーズがある場合は、S2 のその部分を使用することが最善の選択である場合とそうでない場合があります。

于 2013-01-07T16:55:03.587 に答える
2

Java プロジェクト (特に) では、Eclipse はすべてのファイルを SOURCE フォルダーから OUTPUT フォルダーにコピーします。

これは、MyClass.java と foobar.properties を /src フォルダーに配置すると、ビルド時に (出力フォルダーに選択した名前に従って) MyClass.class と foobar.properties が /bin フォルダーの下にあることを意味します。あなたのプロジェクト。

構成ファイル (環境変数 config としましょう) 内のトークンの置き換えや、必要なライブラリの動的な取得などのさらなる自動化のために、一般的に採用される 2 つの主なツールは、Apache Ant (依存関係マネージャーとしてApache Ivyを使用) またはApache Mavenです。

いつもの、

  • プロパティ ファイルは src フォルダーのルートに配置されます。
  • Struts2 XML 検証ファイルは、検証するアクションの同じパッケージに配置されます。
  • Struts2 XML ビジター検証ファイルは、検証する POJO の同じパッケージに配置されます。
  • JSP ファイル、JS ファイル、CSS ファイルは、/WEB-INF フォルダーに隣接して配置され (war 内に配置する必要がある場合)、誰によっても移動されません。

典型的な構造次のとおりです。

src |
    |-- java
    |-- web
       |-- css
       |-- js
       |-- jsp
       |-- WEB-INF
          |-- lib

このSOの回答も見てください:

CSS および JS ファイルを Mavenized Java Web アプリに配置するのに最適な場所は?

CSS および JavaScript ファイルは、Maven Web アプリ プロジェクトのどこに移動しますか?


とはいえ、クライアントの検証について言及するときは、より明確にする必要があります。Javascript の検証を意味する場合は、上記のようにプロジェクトをリファクタリングしてから、JS コンソールを見て問題を説明してください。

ただし、Struts2 を使用する場合は、クライアント側の検証が信頼できないため、XML Validationを使用して入力を検証することをお勧めします。

FireBug を使用して HTML ダイレクトイルを挿入する JavaScript コントロールをバイパスする、実行時に必要なパラメーターを使用してフォームを作成し、それをサーバーに送信する、または JavaScript を無効にしたブラウザーを使用しているとします...クライアントは下にありませんサーバー側を検証することをお勧めします。

于 2013-01-07T10:24:46.473 に答える