Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;未找到映射";没有xml配置的java spring MVC出错_Java_Spring_Model View Controller_Web_Sencha Touch 2 - Fatal编程技术网

&引用;未找到映射";没有xml配置的java spring MVC出错

&引用;未找到映射";没有xml配置的java spring MVC出错,java,spring,model-view-controller,web,sencha-touch-2,Java,Spring,Model View Controller,Web,Sencha Touch 2,我是Spring+MVC的新手。 我找到了一个脚本,我可以运行这个脚本的某些部分。 此脚本在java端内部不使用xml配置SpringMVC。 我将所有JAR放入WEB-INF/lib ControllerConfiguration.java package org.java.springmvc.bootstrap; import org.springframework.context.annotation.Bean; import org.springframework.context.an

我是Spring+MVC的新手。 我找到了一个脚本,我可以运行这个脚本的某些部分。 此脚本在java端内部不使用xml配置SpringMVC。 我将所有JAR放入WEB-INF/lib

ControllerConfiguration.java

package org.java.springmvc.bootstrap;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "org.java.springmvc.controller")
public class ControllerConfiguration {

    @Bean
    public InternalResourceViewResolver configureInternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

}
package org.java.springmvc.bootstrap;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class WebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(final ServletContext servletContext) throws ServletException {
        final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext();
        root.setServletContext(servletContext);
        root.scan("org.java.springmvc.bootstrap");
        root.refresh();

        final Dynamic servlet = servletContext.addServlet("spring", new DispatcherServlet(root));
        servlet.setLoadOnStartup(1);
        servlet.addMapping("/*");
    }

}
package org.java.springmvc.controller;

import java.io.IOException;
import java.io.Writer;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

    @RequestMapping(value = "/")
    public void home(final Writer writer) 
            throws IOException  {
        writer.append("<h2>Welcome, XML Free Spring MVC!</h2>");
    }

    @RequestMapping(value = "/giris")
    public void giris(final Writer writer) 
            throws IOException  {
            writer.append("Giris");
    } 

}
package org.java.springmvc.controller;

import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.java.springmvc.model.Film;
import org.java.springmvc.model.Film.FilmTurleri;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/film")
public class FilmController {

    @RequestMapping(value = "filmler")
    public void filmler(final Writer writer) 
            throws IOException  {
        writer.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-9\"><title>...Filmler...</title>");
        writer.append("<script type=\"text/javascript\" src=\"/js/touch/sencha-touch-all.js\"></script>");
        writer.append("<script type=\"text/javascript\" src=\"/js/film/filmler.js\"></script>");
        writer.append("</head><body></body></html>");

    } 

    @RequestMapping (value = "/filmleriGetir", method = RequestMethod.GET)
    public @ResponseBody Map<String, List<Film>> FilmleriGetir() {
        List<Film> movies = new ArrayList<Film>();

        // For testing...
        movies.add(new Film(0, "Birinci Film", "Birinci Yönetmen", 2015, FilmTurleri.Aksiyon));
        movies.add(new Film(0, "İkinci Film", "İkinci Yönetmen", 2015, FilmTurleri.Komedi));
        movies.add(new Film(0, "Üçüncü Film", "Üçüncü Yönetmen", 2015, FilmTurleri.Aile));

        Map<String, List<Film>> resp = new HashMap<String, List<Film>>();
        resp.put("filmListesi", movies);
        return resp;
    }

}
package org.java.springmvc.model;

public class Film {

    public int Id;
    public String FilmAdi, Yonetmen;
    public int CikisTarihi;
    public FilmTurleri Turu;

    public enum FilmTurleri {
        Aksiyon, Komedi, Aile, Korku, Savas;
    }

    public Film(){

    }

    public Film(int id, String title, String director, int yearOfRelease, FilmTurleri tur)
    {
        super();
        this.Id = id;
        this.FilmAdi = title;
        this.Yonetmen = director;
        this.CikisTarihi = yearOfRelease;
        this.Turu = tur;
    }
    //getter, settings method
}
WebAppInitializer.java

package org.java.springmvc.bootstrap;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "org.java.springmvc.controller")
public class ControllerConfiguration {

    @Bean
    public InternalResourceViewResolver configureInternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

}
package org.java.springmvc.bootstrap;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class WebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(final ServletContext servletContext) throws ServletException {
        final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext();
        root.setServletContext(servletContext);
        root.scan("org.java.springmvc.bootstrap");
        root.refresh();

        final Dynamic servlet = servletContext.addServlet("spring", new DispatcherServlet(root));
        servlet.setLoadOnStartup(1);
        servlet.addMapping("/*");
    }

}
package org.java.springmvc.controller;

import java.io.IOException;
import java.io.Writer;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

    @RequestMapping(value = "/")
    public void home(final Writer writer) 
            throws IOException  {
        writer.append("<h2>Welcome, XML Free Spring MVC!</h2>");
    }

    @RequestMapping(value = "/giris")
    public void giris(final Writer writer) 
            throws IOException  {
            writer.append("Giris");
    } 

}
package org.java.springmvc.controller;

import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.java.springmvc.model.Film;
import org.java.springmvc.model.Film.FilmTurleri;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/film")
public class FilmController {

    @RequestMapping(value = "filmler")
    public void filmler(final Writer writer) 
            throws IOException  {
        writer.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-9\"><title>...Filmler...</title>");
        writer.append("<script type=\"text/javascript\" src=\"/js/touch/sencha-touch-all.js\"></script>");
        writer.append("<script type=\"text/javascript\" src=\"/js/film/filmler.js\"></script>");
        writer.append("</head><body></body></html>");

    } 

    @RequestMapping (value = "/filmleriGetir", method = RequestMethod.GET)
    public @ResponseBody Map<String, List<Film>> FilmleriGetir() {
        List<Film> movies = new ArrayList<Film>();

        // For testing...
        movies.add(new Film(0, "Birinci Film", "Birinci Yönetmen", 2015, FilmTurleri.Aksiyon));
        movies.add(new Film(0, "İkinci Film", "İkinci Yönetmen", 2015, FilmTurleri.Komedi));
        movies.add(new Film(0, "Üçüncü Film", "Üçüncü Yönetmen", 2015, FilmTurleri.Aile));

        Map<String, List<Film>> resp = new HashMap<String, List<Film>>();
        resp.put("filmListesi", movies);
        return resp;
    }

}
package org.java.springmvc.model;

public class Film {

    public int Id;
    public String FilmAdi, Yonetmen;
    public int CikisTarihi;
    public FilmTurleri Turu;

    public enum FilmTurleri {
        Aksiyon, Komedi, Aile, Korku, Savas;
    }

    public Film(){

    }

    public Film(int id, String title, String director, int yearOfRelease, FilmTurleri tur)
    {
        super();
        this.Id = id;
        this.FilmAdi = title;
        this.Yonetmen = director;
        this.CikisTarihi = yearOfRelease;
        this.Turu = tur;
    }
    //getter, settings method
}
HomeController.java

package org.java.springmvc.bootstrap;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "org.java.springmvc.controller")
public class ControllerConfiguration {

    @Bean
    public InternalResourceViewResolver configureInternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

}
package org.java.springmvc.bootstrap;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class WebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(final ServletContext servletContext) throws ServletException {
        final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext();
        root.setServletContext(servletContext);
        root.scan("org.java.springmvc.bootstrap");
        root.refresh();

        final Dynamic servlet = servletContext.addServlet("spring", new DispatcherServlet(root));
        servlet.setLoadOnStartup(1);
        servlet.addMapping("/*");
    }

}
package org.java.springmvc.controller;

import java.io.IOException;
import java.io.Writer;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

    @RequestMapping(value = "/")
    public void home(final Writer writer) 
            throws IOException  {
        writer.append("<h2>Welcome, XML Free Spring MVC!</h2>");
    }

    @RequestMapping(value = "/giris")
    public void giris(final Writer writer) 
            throws IOException  {
            writer.append("Giris");
    } 

}
package org.java.springmvc.controller;

import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.java.springmvc.model.Film;
import org.java.springmvc.model.Film.FilmTurleri;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/film")
public class FilmController {

    @RequestMapping(value = "filmler")
    public void filmler(final Writer writer) 
            throws IOException  {
        writer.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-9\"><title>...Filmler...</title>");
        writer.append("<script type=\"text/javascript\" src=\"/js/touch/sencha-touch-all.js\"></script>");
        writer.append("<script type=\"text/javascript\" src=\"/js/film/filmler.js\"></script>");
        writer.append("</head><body></body></html>");

    } 

    @RequestMapping (value = "/filmleriGetir", method = RequestMethod.GET)
    public @ResponseBody Map<String, List<Film>> FilmleriGetir() {
        List<Film> movies = new ArrayList<Film>();

        // For testing...
        movies.add(new Film(0, "Birinci Film", "Birinci Yönetmen", 2015, FilmTurleri.Aksiyon));
        movies.add(new Film(0, "İkinci Film", "İkinci Yönetmen", 2015, FilmTurleri.Komedi));
        movies.add(new Film(0, "Üçüncü Film", "Üçüncü Yönetmen", 2015, FilmTurleri.Aile));

        Map<String, List<Film>> resp = new HashMap<String, List<Film>>();
        resp.put("filmListesi", movies);
        return resp;
    }

}
package org.java.springmvc.model;

public class Film {

    public int Id;
    public String FilmAdi, Yonetmen;
    public int CikisTarihi;
    public FilmTurleri Turu;

    public enum FilmTurleri {
        Aksiyon, Komedi, Aile, Korku, Savas;
    }

    public Film(){

    }

    public Film(int id, String title, String director, int yearOfRelease, FilmTurleri tur)
    {
        super();
        this.Id = id;
        this.FilmAdi = title;
        this.Yonetmen = director;
        this.CikisTarihi = yearOfRelease;
        this.Turu = tur;
    }
    //getter, settings method
}
我有两个问题:

  • 如果我写入“”,页面将显示。 但如果我写“我会得到这样的警告:
  • “警告:在名为‘spring’的DispatcherServlet中找不到URI为[/SpringMVC/WEB-INF/views/index.jsp]的HTTP请求的映射”

  • 如果在WebContent下添加一个JSP页面(Giris.JSP),则无法显示此页面。所有页面都必须有映射吗?如何显示简单的jsp页面
  • 警告:在名为“spring”的DispatcherServlet中找不到URI为[/SpringMVC/Giris.jsp]的HTTP请求的映射

    编辑: 我变了一点。 我的项目结构如下:

    我得到这个错误:

    未能加载资源:

    我认为这样的逻辑是:

    - there will be a jsp file including "*.js" files. (filmler.jsp)
    
    - there are some methods returning json object in those *.js files. (FilmleriGetir method)
    
    对这种逻辑有什么建议吗

    问候

  • 在MovieController.java中,需要添加“/” :
  • @RequestMapping(“/movies”)

  • 您正在使用
    servlet.addMapping(“/*”)
    这意味着您的
    org.springframework.web.servlet.DispatcherServlet
    ,即Spring将拦截到您的应用程序的每个请求。现在,您在任何控制器中都没有针对
    Giris.jsp
    RequestMapping
    ,因此Spring抛出错误为:未找到URI为[/SpringMVC/Giris.jsp]的HTTP请求的映射

  • 为了显示Giris.jsp页面,您需要:

    A] 在/makenewcontroller中为'Giris.jsp'添加带有
    RequestMapping
    的条目,并将视图设置为'Giris'

    例如:

    您最好使用RequestMapping作为
    /giris
    而不是
    /giris.jsp
    ,因为它公开了底层技术是jsp

    B] 将Giris.jsp文件放在
    /WEB-INF/views/
    文件夹下

    了解
    InternalResourceViewResolver
    的工作原理。参考您的
    控制器配置
    ,当控制器的视图名称返回为“Giris”时,InternalResourceViewResolver会添加您定义的前缀和后缀,并显示该页面。因此,在视图名为“Giris”的情况下,将呈现页面
    '/WEB-INF/views/'+'Giris'+'.jsp'


    • 根据,JSP(文件)名称应始终以小写字母开头。因此,请使用
      giris.jsp
      而不是
      giris.jsp


    编辑(用于修改的问题):

    未能加载资源:

    请理解,由于
    DispatcherServlet
    被映射到
    /*
    ,因此到您的web应用程序的每个请求都由
    DispatcherServlet
    处理,即
    Spring

    每当您的应用程序遇到url时,它都知道
    DispatcherServlet
    将处理该url
    DispatcherServlet
    检查url(在控制器中)是否存在任何
    RequestMapping

    现在,当您添加url时

    没有处理此类url的RequestMapping,因此您将获得一个url

    要加载js文件或图像文件等资源,请使用
    mvc:resources

    例如: 对于js文件: 将所有js文件放在目录
    /WEB-INF/js/

    在配置中为js文件添加mvc:resource映射:

     <mvc:resources mapping="/js/**" location="/WEB-INF/js/" />
    
    
    
    现在您将能够访问js文件。如果Spring遇到像
    /js/film/filmler.js这样的url,它将从mvc:resourceMapping中知道在哪里查找该文件


    Goof mvc:教程资源。

    能否添加项目的文件结构?1。“/”行,谢谢。若我调试应用程序,索引方法中的断点正在触发。但在方法完成后,我得到了以下错误:org.springframework.web.servlet.PageNotFound noHandlerFound警告:在名为“spring”的DispatcherServlet中找不到URI为[/SpringMVC/index]的HTTP请求的映射。您应该将index.jsp文件放置为“/web-INF/views/index.jsp”。编辑:我做了一些更改。我得到这个错误:加载资源失败:我认为这样的逻辑:-将有一个包含“*.js”文件的jsp文件。(filmler.jsp)-在那些*.js文件中有一些方法返回json对象。(FilmleriGetir方法)对这种逻辑有什么建议吗?尊敬。我已经编辑了我的答案,其中包含了访问js文件时遇到的问题的解决方案。我找到了一种动态添加资源的方法。我把我的js文件放在WEB-INF下。但是我仍然得到了错误<代码>@Configuration@EnableWebMvc公共类WebConfigurationContext扩展WebMVCConfigureAdapter{@Override public void addResourceHandlers(ResourceHandlerRegistry注册表){registry.addResourceHandler(“/js/**”).addResourceLocations(“/WEB-INF/js/”);}}