当前位置: 首页 > news >正文

有没有做衣服的网站沈阳教做网站

有没有做衣服的网站,沈阳教做网站,国外排版网站,大学作业旅游网站设计报告文章目录EL 表达式是干什么用的EL 表达式的底层原理EL 表达式可以用在哪些地方EL 表达式用来访问 JavaBean 的属性EL 表达式获取请求参数的值EL 表达式用于运算#xff0c;将结果作为标签的属性值或者直接输出Struts2 的 EL 表达式EL 表达式翻译为 Java 代码的含义EL 表达式示… 文章目录EL 表达式是干什么用的EL 表达式的底层原理EL 表达式可以用在哪些地方EL 表达式用来访问 JavaBean 的属性EL 表达式获取请求参数的值EL 表达式用于运算将结果作为标签的属性值或者直接输出Struts2 的 EL 表达式EL 表达式翻译为 Java 代码的含义EL 表达式示例EL 表达式用在 xml 文件中EL 表达式是干什么用的 EL 表达式的全称是 Expression Language是一种表达式语言。 其语法格式${el表达式}。 EL 表达式可以直接使用并不需要额外的配置或者引入什么文件。 EL 表达式依次从 pageContext、request、session、application 四个隐含对象中找到指定绑定名称对应的对象然后获取对象的属性值直接输出到页面中或者获取对象的属性值后再进行计算将最后的结果输出到页面中。 EL 表达式经常用来给 JSTL 标签的属性赋值。 EL 表达式用字符串表达式替换 Java 代码用来表示对数据的获取或计算。EL 表达式解决了 Java 代码和 HTML 的不匹配问题让 HTML 页面中不再有 Java 代码。 EL 表达式的底层原理 当 JSP 转换成对应的 Servlet 类时会在 service 方法体内生成 EL 表达式对应的 Java 代码。这段 Java 代码就是依次调用 pageContext、request、session、application 对象的 getAttribute() 方法然后将获取到的数据作为 out 对象的 print() 方法的实参最终输出到页面中。 EL 表达式可以用在哪些地方 EL 表达式不可以在 JS 语境中使用即不能在 /script 标签体内使用。 EL 表达式不可以在 Java 语境中使用。 EL 表达式可以使用在 JSP、XML、HTML 等文件中在这些文件中 el 表达式可以单独使用。 EL 表达式经常和 JSTL 标签结合使用用在标签的属性值中用来给标签属性赋值。 EL 表达式可以用在 HTML 标签的属性值中。 具体参见《EL 表达式教程》。 EL 表达式用来访问 JavaBean 的属性 示例${user.name} JSP 引擎会依次从 pageContext、request、session、application 查找绑订名为user 的对象如果找到了就不再向下查找否则继续向下查找。找到后调用该对象的 getName()并输出其值找不到则输出 (空)。 或者也可以使用 ${user[name]} , 效果相同 name 表示字符串。 或者是 ${user[propname]}注意 propname 没有引号表示变量。 此外[] 里面还可以是 0,1,2… 这样的下标作用是输出数组里的元素值。 可以使用 pageScoperequestScopesessionScopeapplicationScope 四个关键字指定查找的范围。例如${requestScope.user.name}只到 request 中去找不再依次到 4 个范围查找了。 示例代码 %--Created by IntelliJ IDEA.User: liaowenxiongDate: 2022/2/4Time: 15:42To change this template use File | Settings | File Templates. --% % page contentTypetext/html;charsetUTF-8 languagejava % % page importpriv.lwx.el.bean.* % html %--访问bean的属性--% headtitleTitle/title /head body stylefont-size:30px; %User user new User();user.setName(liaowenxiong);user.setAge(22);IdCard card new IdCard();card.setCardNo(100);user.setCard(card);user.setInterest(new String[]{fishing, sleep});request.setAttribute(user1, user); % %--基本类型--% ${user1.name}br/ ${user1[name]}br/ ${user1.age}br/ %--引用类型--% ${user1.card.cardNo}br/%request.setAttribute(propname, name); % ${user1[propname]};br/ %--输出数组元素值--% ${user1.interest[1]} users name:${requestScope.user1.name} /body /htmlEL 表达式获取请求参数的值 ${param.username} 等价于 request.getParameter(username); ${paramValues.interest} 等价于 request.getParameterValues(interest); %--Created by IntelliJ IDEA.User: liaowenxiongDate: 2022/2/4Time: 16:14To change this template use File | Settings | File Templates. --% % page contentTypetext/html;charsetUTF-8 languagejava % html %--获取请求参数值--% headtitleTitle/title /head body stylefont-size:30px; username:${param.username}br/ interest:${paramValues.interest[0]} interest:${paramValues.interest[1]} interest:${paramValues.interest} /body /htmlEL 表达式用于运算将结果作为标签的属性值或者直接输出 %--Created by IntelliJ IDEA.User: liaowenxiongDate: 2022/2/4Time: 16:29To change this template use File | Settings | File Templates. --% % page contentTypetext/html;charsetUTF-8 languagejava % % page importjava.util.* % % page importjavax.servlet.jsp.* % html headtitleTitle/title /head body stylefont-size:30px; %--算术运算--% ${12}br/ ${245456}br/ hr %--关系运算--% ${abc abc} ${abc eq abc} hr %pageContext.setAttribute(str, abc); % %--el表达式会从pageContex对象中获取到属性str的值然后再和字符串abc比较最后将比较结果输出到页面中--% ${abc eq str}br/ %--empty运算--% %request.setAttribute(str1, );List list new ArrayList();request.setAttribute(list1, list);request.setAttribute(obj1, null); % %--空字符串的结果为true--% ${empty str1}br %--找不到指定绑定名对应的对象结果为true--% ${empty obj}br %--集合内容为空结果为true--% ${empty list1}br %--null结果为true--% ${empty obj1}br /body /htmlStruts2 的 EL 表达式 Struts2 的 V 层组件一般是 JSP 文件在 JSP 文件中可以通过 el 表达式、ognl 表达式、jstl 标签库、struts2 提供的标签来获取 Action 组件中的属性值。 使用 el 表达式不需要引入额外的 jar 包要使用 ognl 表达式要引入 ognl-2.7.3.jar 包要使用 jstl 标签要引入 jstl.jar 和 standard.jar 包并且在 JSP 文件中要使用指令引入 jstl 标签库。在 Struts2 项目中使用 Struts2 的标签不要引入额外的 jar 包但是 JSP 文件中需要使用指令引入 Struts2 的标签库。 其实 struts.xml 中配置的 V 层组件默认情况下控制器是通过转发的机制去调用的按道理说控制器可以将 Action 组件的属性值先绑定到 request 对象中再转发给某个 jsp 文件那么 jsp 中的 el 表达式就可以从 request 对象中找到数据了。实际情况并非如此的。 在 Struts2 的项目中JSP 文件中获取到 request 对象并不是服务器生成的而是 Struts2 提供的包装类 StrutsRequestWrapper 的对象这个包装类实际上是 HttpServletRequest 的衍生类StrutsRequestWrapper 类重写了 getAttribute() 方法这个方法会先去访问服务器生成的 request 对象如果获取不到指定属性的值再去访问 ValueStack 对象中的属性 root 和 context。 所以在 Struts2 项目中el 表达式表面还是去访问 pageContext、request、session、application 四个对象获取指定属性的值。只不过在访问 request 对象时底层是先去访问服务器生成的原始 request 对象获取不到再去访问 ValueStack 对象的属性 root 和 context。 如果按标准 el 表达式访问的域对象来排序Struts2 中的 el 表达式访问域对象的实际顺序是 pageContext、request、ValueStack、session、application 所以在 Struts2 项目中el 表达式如果无法从 pageContext、request 对象获取到数据那么就会执行以下的代码去访问 ValueStack Object obj Ognl.getValue(OGNL表达式,root,context);el 表达式 ${author}可以获取到 Action 对象的 author 属性值其实是调用该 Action 对象 getAuthor() 方法如果 Action 类中没有定义变量 author却有 getAuthor() 方法${author} 最后也会调用 Action 对象的 getAuthor() 方法。 总结Struts2 的 el 表达式底层有去调用 Ognl 引擎访问 ValueStack 的属性 root 和 context而且访问 context 获取指定属性的值并无需在属性名前加 #。 EL 表达式翻译为 Java 代码的含义 举例说明下 ${foo.name} 翻译为 Java 代码是 out.print(foo.getName());意味着调用对象 foo 的 getName() 方法而非直接访问对象 foo 的实例变量 name同时注意实例变量一般是私有的不能直接访问。 另外JSP 引擎会依次从 pageContext、request、session、application 查找绑订名为“foo”的对象。 注其实 out.write()、out.print() 都是先把 html 文本数据输出到 response 对象中然后 web 服务器再把 response 对象中的数据响应个浏览器端进行加载和解析最后显示出来给用户看。 EL 表达式示例 EL 表达式${empty str1} JSP 引擎会依次从 pageContext、request、session、application 查找绑订名为“str1”的对象如果找到了就不再向下查找否则继续向下查找。找到后判断值是否为空如果是空字符串则返回 true如果是个空集合也返回 true如果找不到绑定名为“str1”的对象也返回 true如果是 null也返回 true。再将 true 这个值输出到页面中最后响应给浏览器显示出来。 EL 表达式${user.name} 或 ${user[name]} JSP 引擎会依次从 pageContext、request、session、application 查找绑订名为user 的对象如果找到了就不再向下查找否则继续向下查找。找到后调用该对象的 getName()并输出其值找不到则输出 (空)。 EL 表达式${requestScope.user.name} 表示只到 request 中查找不再依次从 pageContext、request、session、application 查找。 EL 表达式用在 xml 文件中 在 Struts2 项目中我们在 struts.xml 文件中可以使用 EL 表达式获取属性值如下所示 action nameuser classpriv.lwx.struts2.UserAction result namesuccess typedispatcher/WEB-INF/jsp/user.jsp?userId${user.userId}/result /action
http://www.pierceye.com/news/111198/

相关文章:

  • 培训教育学校的网站建设方案vx小程序怎么制作
  • 泉州网站建设优化公司酒店网络营销推广方案
  • 重庆潼南网站建设公司电话crm客户关系管理平台
  • 怎么做可以访问网站连接加密东莞++网站建设
  • 企业网站的建设与流程数据分析师要学什么课程
  • 重庆营销型网站随做的好谷歌广告投放教程
  • 个人公众号做网站广州市车管所网站建设
  • 上海网站建设公司排名王也诸葛青cp
  • 常用的设计网站有哪些wordpress如何汉化主题
  • 深圳全网营销型网站免费做调查的网站有哪些
  • 设计素材网站知乎济南seo网站推广
  • 网站建设类岗位杭州国家电网 两学一做 网站
  • html静态网站开发自我介绍网站手机客户端开发教程
  • 营销型网站是什么样的桂林北站有核酸检测点吗
  • 网站未备案被阻断怎么做it培训机构哪个好一点
  • 重庆建设注册执业中心网站网络营销百度百科
  • app网站怎么下载个人备案做视频网站
  • 西宁建一个网站公司广东网站备案
  • 网站数据比较北京网站优化推广公司
  • 想做网站的客户在哪找美间在线设计平台
  • 网站设计规划的目的和要求营销外贸网站建设案例
  • 网站营销力一级a做爰片2017免费网站
  • 昌图网站网页界面设计的要求
  • 做一个网站赚钱什么 门户网站
  • 中国建设银行购物网站帝国织梦wordpress
  • 瑞安网站网站建设松原公司做网站的流程
  • 做网站按页面收费视频解析网站如何做搜索
  • 太原网站的公司赣州安全教育平台
  • 淮北建投网站网站推广与维护有什么不同
  • 深圳网站备案注销平果县免费网站哪家好