当前位置: 首页 > 知识库问答 >
问题:

controller方法中的关系B/W视图名称和Spring MVC中的@RequestMapping(value=“/…”)

桓深
2023-03-14

我是Spring MVC的新手&通过Craig Walls Spring4的操作。

考虑片断,

@RequestMapping(value = "/spittles", method = RequestMethod.GET)
    public String spittles(Model model, @RequestParam("max") long max,
                           @RequestParam("count") int count) {

        model.addAttribute("spittleList",spittleRepository.findSpittles(max, count));

        return "spittles";                 // <-- return view name
}

该图像显示了驻留在/web-inf/views/中的spittles.jsp

webconfig.java:

@Configuration
@EnableWebMvc                   // Enable Spring MVC
@ComponentScan(basePackages={"org.spittr"})
public class WebConfig extends WebMvcConfigurerAdapter {

    @Bean
    public ViewResolver viewResolver() {

        InternalResourceViewResolver resolver =
            new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);

        return resolver;
    }

    @Override
    public void configureDefaultServletHandling(
                         DefaultServletHandlerConfigurer configurer) {

        /* configure static content handling */
        configurer.enable();
    }



}

1)为什么我需要在controller方法中返回字符串“spittles”?

2)它(返回字符串)是否与

http://localhost:8080/web/spittles?max=238900&count=5

共有1个答案

赫连越
2023-03-14

回答你的问题:

  1. 字符串“spittles”将被传递给视图解析器,视图解析器查找视图/web-inf/views/splittles.jsp。如果返回“hello_world”,则需要视图/web-inf/views/hello_world.jsp.
  2. 否-这是控制器URL。如果愿意,您可以定义一个完全不同的控制器URL,例如/my/super/vality/URL-这只是您接受(GET)请求的路径。
  3. 请参阅1.和2.的答案。)虽然它的良好做法是保持spring-controll-urls和JSP视图名称相同,因此对于开发人员来说,这里发生的事情是显而易见的。

例如,您可能必须控制相同路径的方法,其中一个响应GET,另一个响应POST请求,这两个结果都导致不同的视图:

@RequestMapping(value = "/spittles", method = RequestMethod.GET)
public String spittles(Model model, @RequestParam("max") long max,
                       @RequestParam("count") int count) {
  // ...
  return "splittles_get";
}

@RequestMapping(value = "/spittles", method = RequestMethod.POST)
public String spittles(Model model, @RequestParam("max") long max,
                       @RequestParam("count") int count) {
  // ...
  return "splittles_post";
}

您甚至可以返回一个相对路径,如splittles/jspname,这意味着您可以在文件夹中组织您的JSP,这里是/web-inf/views/splittles/something.jsp

 类似资料:
  • 我是Spring MVC的新手&经历了Craig Walls Spring4的实际操作。 考虑一下这个片段, 该图像显示spittles.jsp位于/WEB-INF/views/中 3)为什么在输入URL时看不到。jsp扩展名 http://localhost:8080/web/spittles?max=238900&count=5

  • 我在Spring MVC中的controller类中有一个方法。

  • " My specialty is being right when other people are wrong. " — George Bernard Shaw 深入 在本书其它几处,我们已经见识过一些特殊方法——即在使用某些语法时 Python 所调用的“神奇”方法。使用特殊方法,类用起来如同序列、字典、函数、迭代器,或甚至像个数字!本附录为我们已经见过特殊方法提供了参考,并对一些更加深奥的

  • 主要内容:@Controller 注解,@RequestMapping 注解,示例,支持 Ant 风格的路径从 Java 5 开始,Java 就增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、加载和运行时被读取,执行相应的处理。通过注解,开发人员可以在不改变原有代码逻辑的情况下,在代码中嵌入补充信息。 Spring 从 2.5 版本开始提供了对注解技术的全面支持,以替换传统的 XML 配置,简化 Spring 的配置。作为 Spring 框架的一个子项目, Sp

  • 我有一个非常基本的应用程序,由商店和属于商店的产品组成。我从产品表单中很好地提取了store ID,但每次尝试在产品视图中显示store中的属性时,都会出现未定义的方法错误。 products\u控制器。rb型 product.rb 产品表单(_form.html.erb) store.rb 以及有问题的产品视图(nil: NilClass的未定义方法“名称”): 使用Rails控制台查找属于我引

  • 我有两个数据集: < li >一个是关于狗的数据[我的数据] < li >第二个是匹配关键字的查找表[我无法控制该数据] 匹配键会定期更新,我想创建 Dog 数据集的视图(或实现相同目的的视图),该视图始终联接最新的匹配键。此外,我需要能够内联引用它 - 就好像它是一个表格一样。 查找表中的匹配更新通过其模式名称来区分,因此要获取最新的,我只需识别最新的模式名称并将其从查询中交换出来。 假设视图和