struts2什么情况用#和EL表达示

1:struts2标签使用中,什么时候用#,什么时候可以不用#

值栈中的对象的不使用#,非值栈中的对象使用#如果不理解值栈的作用,简单点理解:当前action,或者处于action链中的action所拥有的属性,并且为该属性提供了getter和setter方法,那么在jsp中就不需要使用#,除此之外需要使用#,那么从这里你就可以知道action的属性如果提供了getter和setter方法,那么这些属性值就会放置到值栈中---------------------------------------------------------------------------------------------------------原理:这个我们要从很深刻的问题说起。什么是:根--ValueStack(值栈),什么是:StackCont
ext(上下文),什么是:ActionContext;

*Struts2的#号可以用在jsp页面(多见),也可以用在java代码里(少见)。

2:EL表达式

EL表达示的作用是在jsp页面简化嵌入java的开发。(EL用在jsp页面)

 例如jsp页面

<%
String duan=(String)request.getAttribute("duan");
%>
如果用EL表达式的话,就可以用
${requestScope.duan}

注意事项:

1、语法结构
     ${expression}
2、[ ]与.运算符
     EL 提供“.“和“[ ]“两种运算符来存取数据。
     当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。例如:
         ${user.My-Name}应当改为${user["My-Name"] }
     如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
         ${sessionScope.user[data]}中data 是一个变量
3、变量
     EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
     因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
     假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
     属性范围在EL中的名称
         Page          PageScope
         Request          RequestScope
         Session          SessionScope
         Application      ApplicationScope

				
时间: 2024-10-12 04:37:34

struts2什么情况用#和EL表达示的相关文章

正则表达示

这里对正则表达示进行一定程度的总结.为避免太过纠结,这里避开一些 鸡肋 的正则用法. 更多文档参考官方文档 http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html 字符 x 字符 x \\ 反斜线字符 \t 制表符 ('\u0009') \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') \f 换页符 ('\u000C') \a 报警 (bell) 符 ('\u0007') \e 转义

在jsp中用EL 表达来获取表单中的参数

在一个JSP页面转到另一个JSP页面时,对表单中的参数用EL表达式提取为: <form action="sampleJsp.jsp" method="post">     <input type="text" name="sampleValue" value="10" />     <input type="text" name="sampleVa

IntelliJ IDEA在Make Project时报:未结束的字符串子面量、非法的表达示开始

IntelliJ IDEA在Make Project时提示了很多错误,什么未结束的字符串子面量.非法的表达示开始-- 解决方法是修改File Encoding,修改方法:File > Setting > File Encoding,将IDE Encoding和Project Encoding 都设置为UTF-8,如下图: 错误信息: Error:(48, 48) java: F:\wkspaces\pro_nsomp\trunk\nsomp-base\src\com\foresee\fw\ba

逆波兰法求解数学表达示(C++)

主要是栈的应用,里面有两个函数deleteSpace(),stringToDouble()在我另一篇博客当中:对string的一些扩展函数. 本程序只是基本的功能实现,没有差错控制. #include<iostream> #include<stack> #include<string> #include<map> #include"fstring.h" /* *采用逆波兰表示法求解数学表达示 *1.将输入的中缀表示示转换成后缀表达示 *2

php 正则表达示中的原子

原子 原子是正则表达示里面的最小单位,原子说白了就是需要匹配的内容.一个成立的正则表达示当中必须最少要有一个原子.大理石平台精度等级 所有可见不可见的字符就是原子 说明:我们见到的空格.回车.换行.0-9.A-Za-z.中文.标点符号.特殊符号全为原子. 在做原子的实例前我们先来讲解一个函数,preg_match: int preg_match ( string $正则 , string $字符串 [, array &$结果] ) 功能:根据$正则变量,匹配$字符串变量.如果存在则返回匹配的个数

php正则表达示的定界符

在学习正则表达示前,我们先要来学习正则表达示的定界符. 定界符,就是定一个边界,边界已内的就是正则表达示. PHP的正则表达示定界符的规定如下: 定界符,不能用a-zA-Z0-9\ 其他的都可以用.必须成对出现,有开始就有结束.大理石机械构件维修 我们来例几个例子: 例子 说明 /中间写正则/ 正确 $中间写正则$ 正确 %中间写正则% 正确 ^中间写正则^ 正确 @中间写正则@ 正确 (中间写正则) 错误 A中间写正则A 错误 注:\ 是转义字符,如果在以后正则表达示里面需要匹配/,如下图:

EL表达&lt;%@page isELIgnored=&quot;false&quot;%&gt;问题

上网查找资料后得知:主要原因是EL表达式无法被解析到. 其实从后台取值并传值到前台来根本就没有错,而前台JSP页面EL表达式无效,解析不到EL表达式,引起的原因是web.xml中: <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

正则表达示 for Python3

前情提要 从大量的文字内容中找到自己想要的东西,正则似乎是最好的方法.也是写爬虫不可缺少的技能.所以,别墨迹了赶紧好好学吧! 教程来自http://www.runoob.com/python3/python3-reg-expressions.html,感谢菜鸟教程. 一. 在Python3中 正则为 re 模块 import re 二.re.match函数 re.match –>从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话match()就返回none,语法: re.match(p

EL表达语言

JSP 表达式语言 JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单.JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式.在JSP EL表达式内可以使用整型数,浮点数,字符串,常量true.false,还有null. 一个简单的语法 典型的,当您需要在JSP标签中指定一个属性值时,只需要简单地使用字符串即可: <jsp:setProperty name="box" property="perimeter" value=&qu