2016-05-11 1 views
1

状況:私はspring webappを試しています。次のようにModelAndViewインスタンスを通してコントローラからビューを返すことができませんか?

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5"> 
<display-name>Archetype Created Web Application</display-name> 
<welcome-file-list> 
<welcome-file>index.html</welcome-file> 
</welcome-file-list> 

<servlet> 
<servlet-name>rest</servlet-name>    
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet- 
class> 
</servlet> 
<servlet-mapping> 
<servlet-name>rest</servlet-name> 
<url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 
</web-app> 

、残り-servlet.xmlは次のとおりです:

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
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/mvc   
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

<context:component-scan base-package="com.hmkcode.spring.mvc.controllers" /> 
<mvc:annotation-driven /> 


<bean id="multipartResolver" 
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> 

これでアプリケーションがあるときにアプリの名前はspring-mvc-jquery-file-upload

次のように私のweb.xmlがあるあります実行すると、index.htmlが正常に表示されます。それは、次のアンカータグを持って次のようにこの要求を処理し、form.jspを返し

<a href="rest/controller/next">Next</a> 

方法Next()は次のとおりです。

@Controller 
@RequestMapping("/controller") 
public class FileController { 
@RequestMapping(value="/next", method = RequestMethod.GET) 
public ModelAndView Next() { 

    return new ModelAndView("C:\\Users\\Varrox\\Desktop\\" 
      + "spring-mvc-jquery-file-upload\\src\\main\\" 
      + "webapp\\form.jsp","wl-entity",new Sample()); 
} 
} 

問題:私が直面しています問題はときということです私はにあるnextリンクをクリックします。 "URIを持つHTTP要求のマッピングが見つかりません[/ spring-mvc-jquery-file-upload/rest/controller/C:/ Users/Varrox/Desktop/spring -mvc-jquery-file-upload/src/main/webapp/formと入力します。 jsp]をDispatcherServlet内の名前 'rest' "に変更します。

コントローラでNext()方法は、ビュー名の前にビュー名と一緒にアプリプレフィックスspring-mvc-jquery-file-upload/rest/controllerModelAndViewインスタンスを返し、マッピングが見つからなかった理由があるとき、あなたが見ることができるように。

この接頭辞を削除して、マッピングが正しく行われ、form.jspが表示されるようにするにはどうすればよいですか。

+0

[spring]みんな、なぜhttp://stackoverflow.com/search?q=is%3Aq+%22No+mapping+found+for+HTTP+request+with+URI%22+%22inの標準的な複製はまだありませんか? +名前%2のDispatcherServlet + 2? – BalusC

答えて

0

Javaアプリケーションがクラスパスにないリソースをロードできると期待しています。これは動作しません。

viewResolverが必要です。名前でビューを見つけるために使用されます。このexempleで ​​

、ファイル拡張子をルートパスを扱う接頭辞に注意してください、と接尾辞

次にファイル名の簡単な使用:

return new ModelAndView("form","wl-entity",new Sample()); 
ここ

全exemple Spring MVC file upload example

関連する問題