iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >关于SpringMVC请求域对象的数据共享问题
  • 365
分享到

关于SpringMVC请求域对象的数据共享问题

2024-04-02 19:04:59 365人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

springMVC支持路径中的占位符。 可以通过路径的方式来传参。restful风格。使用{}做占位符在路径中指定参数,使用@PathVariable注解在参数列表中指定。 <

springMVC支持路径中的占位符。

可以通过路径的方式来传参。restful风格。使用{}做占位符在路径中指定参数,使用@PathVariable注解在参数列表中指定。

<a th:href="@{/test/1}">传了参数</a>
@RequestMapping("/test/{id}")
public String test(@PathVariable("id")Integer id){
    System.out.println(id);
    return "index";
}

如果使用了占位符则请求地址必须有值,否则会报404错误。

获取请求参数

使用Servletapi获取(基本不用)

@RequestMapping("/testParam")
public String Param(httpservletRequest request){
    String userName = request.getParameter("userName");
    String passWord = request.getParameter("password");
    return "index";
}

通过控制器的形参获取(保证参数名相同的情况下)牛逼

<a th:href="@{/testParam(username='admin',password='123')}">传了参数</a>
@RequestMapping("/testParam")
public String testParam(String username,String password){
    System.out.println("username:"+username+",password:"+password);
    return "index";
}

RequestParam

请求参数和控制器形参创建映射关系。

  • Value
  • Required
  • DefaultValue

使用实体类接受请求参数

@RequestMapping("/testPojo")
public String testPojo(User user){
    System.out.println(user);
    return "index";
}

配置过滤器,处理乱码问题

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.WEB.filter.CharacterEncodingFilter</filter-class>
    <!--设置字符集-->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <!--强制响应字符集-->
    <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

域对象共享数据

使用原生ServletAPI向request域对象共享数据(不用)


@RequestMapping("/test")
public String test(HttpServletRequest request){
    request.setAttribute("hello","hello");
    return "index";
}

使用ModelAndView对象

返回值类型为ModelAndView

//使用ModelAndView对象的方式
@RequestMapping("/")
public ModelAndView toIndex(HttpServletRequest request){
    ModelAndView mav = new ModelAndView();
    //设置共享数据
    mav.addObject("result","mavResult");
    //设置视图名称
    //视图名称=逻辑视图名称。
    mav.setViewName("index");
    return mav;
}

使用Model对象

Model是一个接口,因此不能像ModelAndView那样去new。

//使用Model对象的方式
@RequestMapping("/")
public String toIndexModel(Model model){
    //设置共享数据
    model.addAttribute("result","ModelResult");
    return "index";
}

使用Map集合

//使用Map对象的方式
@RequestMapping("/")
public String toIndexModel(Map<String,Object> map){
    //设置共享数据
    map.put("result","MapResult");
    return "index";
}

使用ModelMap

ModelMap的实例是由mvc框架自动创建并作为控制器方法参数传入,无需也不能自己创建。

如自己创建,则无法共享数据。

//使用ModelMap对象的方式
@RequestMapping("/")
public String toIndexModel(ModelMap modelMap){
    //设置共享数据
    modelMap.addAttribute("result","ModelMapResult");
    return "index";
}

到此这篇关于SpringMVC请求域对象的数据共享的文章就介绍到这了,更多相关SpringMVC请求域对象内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 关于SpringMVC请求域对象的数据共享问题

本文链接: https://www.lsjlt.com/news/138116.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作