• EL表达式中,param和requestScope的区别


    在看param和requestScope之前,不妨先了解下在java下request的情况:

    1. request对象通常用来接收客户端提交到服务端的数据,如:在servlet或者action中可以用request.getParameter()的方法获取获取参数内容;

    2. requestScope通常是在servlet或者action的服务端中通过request.setAttribute()方法把数据放到request对象中供客户端获取,然后客户端获取的方法就是requestScope.getAttribute()。

    1. getParameter

    可以获取URL中传递过来的String参数,如:http://www.baidu.com?username=abc 中的abc;

    提示:对于POST/GET提交的表单,在服务器端我们都可以通过request.getParameter获取表单中的值。

    当我们在进行一个请求重定向(redirect)的时候,我们可以通过request.setParameter传递参数,如果用request.setAttribute在重定向页面是取不到值的。

    (待验证,因为HttpServletRequest中没有setParameter方法。)

    2. getAttribute:

    获取的是一个对象(Object)。

    当我们进行一个请求转发(forward)的时候,可以使用request.setAttribute传递参数。

    3. requestScope作为El表达式中的使用:

    是EL表达式中的一个隐含对象,类似request,如:${requestScope.username} 表示在request域中取得username属性所对应的值,相当于request.getAttribute(“username”)。

    4. param,El表达式中的使用

    ${param.username} 可理解为:request.getParameter(“username”);

    结论:

    ${param.name} 等价于 request.getParamter("name"),这两种方法一般用于服务器从页面或者客户端获取的内容,这些内容都是String的。

    ${requestScope.name} 等价于 request.getAttribute("name"),一般是从服务器传递结果到页面,在页面中取出服务器端保存的值!

  • 相关阅读:
    dubbo的防痴呆设计
    dubbo设计实现的健壮性
    Dubbo配置设计
    一些设计上的常识
    如何使用sqlalchemy获取某年某月的数据总和
    使用datatables实现后台分页功能,减轻前端渲染压力
    datatable使用介绍
    ssh远程执行nohup命令不退出
    ssh 执行多条命令包含awk的用法
    sys.argv的妙用:python命令行参数列表的修改、增加、删除
  • 原文地址:https://www.cnblogs.com/damoblog/p/8250345.html
Copyright © 2020-2023  润新知