1

SpringToolSuiteテンプレートを介してSpring3MVCプロジェクトを作成し、そこにSpringセキュリティを統合しました。静的コンテンツへのアクセスを除いてすべてが機能します。

MVCアプリのみを作成し、静的コンテンツ/src/webapp/WEB-INF/resources/を入れ<resources mapping="/resources/**" location="src/main/webapp/WEB-INF/resources" />て配置すると、applicationContext.xmlうまく機能します...しかし、このコードをapplicationContext.xmlセキュリティで追加することはできません...コードはコンパイルされません。これを機能させるために私のweb.xmlに書き込むには?

私のapplicationContext.xmlファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<context:annotation-config />

<context:component-scan base-package="cz.cvut.fit.genepi.controllers" />

<import resource="classpath:applicationContext-security.xml" />

<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

上記のコードを使用すると、ビューコントローラーのマッピングがすべて機能するのは奇妙ですが、これを使用すると、このエラーが発生しますThe prefix mvc:resources is not bound

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

<context:annotation-config />
    <context:component-scan base-package="cz.cvut.fit.genepi.controllers" />
<import resource="classpath:applicationContext-security.xml" />
<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

<mvc:resources mapping="/resources/**" location="/resources/" />

     </beans>

ソリューションの構造:

ここに画像の説明を入力してください

4

1 に答える 1

3

コードはアプリコンテキスト定義(applicationContext.xml)に含まれている必要があり、場所はデプロイメントルートを基準にしています。

 <mvc:resources location="/resources/" mapping="/resources/**"/>

設定ファイルの先頭にこれが必要になります

 xmlns:mvc="http://www.springframework.org/schema/mvc"

その後

 xsi:schemaLocation = http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd

多少の混乱があるかもしれませんが、通常のwdirectory構造は次のようになります。

src/main/java 
src/main/resources
src/main/webapp
src/main/webapp/WEB-INF
src/main/webapp/WEB-INF/jsps
src/main/webapp/css 

cssディレクトリはほんの一例です。私は実際にjavasciptを持っており、画像ディレクトリもあります。たとえば「static-assets」と呼ばれるものだけを好む人もいます。しかし、それをリソースと呼ぶのはかなり混乱します。src / main / resource /ディレクトリには、実際にはプロジェクト全体の構成ファイルが含まれています(appContext.xmlをそこに配置し、log.propertiesファイルを配置します)。展開時にWEB-INFにコピーされるため、静的なマッピングには使用しないでください。資力。たとえば、私の例では、woul dactualylは次のようにマッピングされます:

<mvc:resources location="/css/" mapping="/css/**"/>
于 2013-03-20T15:17:47.650 に答える