struts 2でcss,jsなどのリソースが無効な非パス問題(初心者問題)

3856 ワード

小さなStrust 2の例
それからcss、js、ピクチャーが使えないことを発見して、debuggerの下でこれらの資源にアクセスできないことを発見して(404間違い)、お母さん、その例は明らかにできるのに、少なくとも本の上のピクチャーから見ます.
発見はwebです.xmlのフィルタの問題です.コードは次のとおりです.
web.xml
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

         version="3.1">

    <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>/*</url-pattern> </filter-mapping>

<welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

</web-app>

赤い部分のコードはすべてのアクセスをフィルタします.これでcss,jsなどのリソースへのアクセスもフィルタリングされてしまうのではないでしょうか.しかし、その本の例はこう書かれていて、みんなそう書いています.毛のために!!!お母さん.
strust.xmlファイルにはactionが1つしかありません.
githubに転がって完全なプロジェクトを見て、長い間探して、似たようなプロジェクトがStrust 2を適用していることを発見して、cssなどのリソースファイルも適用しています.そしてweb.xmlファイルは私とそっくりですが、Strust.に気づきました.xmlファイルには特別な点があります.次の行です.
<constant name="struts.action.excludePattern" value="/static/.*?" /><!-- default locale -->

staticファイルはcss,js,ピクチャなどのリソースを置く場所であり,コードの横にもコメントされている.
お母さんの卵はもともとそうだった.
Strust.xmlのタグにこの行のコードを付ければいいのですが、(staticはルートフォルダの下にリソースファイルのフォルダに置く)
このフレームの下にあるすべてのリソースファイルにアクセスできます!
ただし、参照パスは絶対パスが望ましいことを覚えておいてください.これはもう古い問題だ.