<%@ page contentType="text/html; charset=UTF-8"%>
${sampleValue + 1}
<%request.getSession().setAttribute("sampleValue", new Integer(10));%>
${sessionScope.sampleValue}
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8"%>
${paramValues.sampleValue[2]}
${param.sampleSingleValue}
操作符
|
功能和作用
|
.
|
访问一个 bean 属性或者 Map entry
|
[]
|
访问一个数组或者链表元素
|
()
|
对子表达式分组,用来改变赋值顺序
|
? :
|
条件语句,比如:条件 ?ifTrue:ifFalse
如果条件为真,表达式值为前者,反之为后者
|
+
|
数学运算符,加操作
|
-
|
数学运算符,减操作或者对一个值取反
|
*
|
数学运算符,乘操作
|
/ 或 div
|
数学运算符,除操作
|
% 或 mod
|
数学运算符,模操作 ( 取余 )
|
== 或 eq
|
逻辑运算符,判断符号左右两端是否相等,如果相等返回 true ,否则返回 false
|
!= 或 ne
|
逻辑运算符,判断符号左右两端是否不相等,如果不相等返回 true ,否则返回 false
|
< 或 lt
|
逻辑运算符,判断符号左边是否小于右边,如果小于返回 true ,否则返回 false
|
> 或 gt
|
逻辑运算符,判断符号左边是否大于右边,如果大于返回 true ,否则返回 false
|
<= 或 le
|
逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回 true ,否则返回 false
|
>= 或 ge
|
逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回 true ,否则返回 false
|
&& 或 and
|
逻辑运算符,与操作赋。如果左右两边同为 true 返回 true ,否则返回 false
|
|| 或 or
|
逻辑运算符,或操作赋。如果左右两边有任何一边为 true 返回 true ,否则返回 false
|
! 或 not
|
逻辑运算符,非操作赋。如果对 true 取运算返回 false ,否则返回 true
|
empty
|
用来对一个空变量值进行判断 : null 、一个空 String 、空数组、 空 Map 、没有条目的 Collection 集合
|
func(args)
|
调用方法 , func 是方法名, args 是参数,可以没有,或者有一个、多个参数 . 参数间用逗号隔开
|
${pageScope.sampleValue + 12}
// 显示 12
${(pageScope.sampleValue + 12)/3}
// 显示 4.0
${(pageScope.sampleValue + 12) /3==4}
// 显示 true
${(pageScope.sampleValue + 12) /3>=5}
// 显示 false
// 显示值为 10 的 Text 控件
标签库
|
URI
|
前缀
|
Core
|
http://java.sun.com/jsp/jstl/core
|
c
|
XML processing
|
http://java.sun.com/jsp/jstl/xml
|
x
|
I18N formatting
|
http://java.sun.com/jsp/jstl/fmt
|
fmt
|
Database access
|
http://java.sun.com/jsp/jstl/sql
|
sql
|
Functions
|
http://java.sun.com/jsp/jstl/functions
|
fn
|
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
${i}
属性
|
描述
|
value
|
输出到页面的数据,可以是 EL 表达式或常量(必须)
|
default
|
当 value 为 null 时显示的数据(可选)
|
escapeXml
|
当设置为 true 时会主动更换特殊字符,比如“ <,>,& ”(可选,默认为 true )
|
属性
|
描述
|
value
|
值的信息,可以是 EL 表达式或常量
|
target
|
被赋值的 JavaBean 实例的名称,若存在该属性则必须存在 property 属性(可选)
|
property
|
JavaBean 实例的变量属性名称(可选)
|
var
|
被赋值的变量名(可选)
|
scope
|
变量的作用范围,若没有指定,默认为 page (可选)
|
${oneString}
属性
|
描述
|
var
|
需要被删除的变量名
|
scope
|
变量的作用范围,若没有指定,默认为全部查找(可选)
|
${sessionScope.sampleValue}
${param.sampleSingleValue[9] == 3}
${err}
属性
|
描述
|
test
|
需要判断的条件
|
var
|
保存判断结果 true 或 false 的变量名,该变量可供之后的工作使用(可选)
|
scope
|
变量的作用范围,若没有指定,默认为保存于 page 范围中的变量(可选)
|
It is 12
${visits}
not 12 not 13,it is 11
not 11 not 13,it is 12
not 11 not 12,it is 13
not 11 、 12 、 13
属性
|
描述
|
items
|
进行循环的集合(可选)
|
begin
|
开始条件(可选)
|
end
|
结束条件(可选)
|
step
|
循环的步长,默认为 1 (可选)
|
var
|
做循环的对象变量名,若存在 items 属性,则表示循环集合中对象的变量名(可选)
|
varStatus
|
显示循环状态的变量(可选)
|
<%ArrayList arrayList = new ArrayList();
arrayList.add("aa");
arrayList.add("bb");
arrayList.add("cc");
%>
<%request.getSession().setAttribute("arrayList", arrayList);%>
${arrayListI}
${i}
属性
|
描述
|
items
|
进行分隔的 EL 表达式或常量
|
delims
|
分隔符
|
begin
|
开始条件(可选)
|
end
|
结束条件(可选)
|
step
|
循环的步长,默认为 1 (可选)
|
var
|
做循环的对象变量名(可选)
|
varStatus
|
显示循环状态的变量(可选)
|
${aValue}
属性
|
描述
|
url
|
需要导入页面的 URL
|
context
|
Web Context 该属性用于在不同的 Context 下导入页面,当出现 context 属性时,必须以“ / ”开头,此时也需要 url 属性以“ / ”开头(可选)
|
charEncoding
|
导入页面的字符集(可选)
|
var
|
可以定义导入文本的变量名(可选)
|
scope
|
导入文本的变量名作用范围(可选)
|
varReader
|
接受文本的 java.io.Reader 类变量名(可选)
|
该示例演示了三种不同的导入方法,第一种是在同一 Context 下的导入,第二种是在不同的 Context 下导入,第三种是导入任意一个 URL 。
属性
|
描述
|
value
|
页面的 URL 地址
|
context
|
Web Context 该属性用于得到不同 Context 下的 URL 地址,当出现 context 属性时,必须以“ / ”开头,此时也需要 url 属性以“ / ”开头(可选)
|
charEncoding
|
URL 的字符集(可选)
|
var
|
存储 URL 的变量名(可选)
|
scope
|
变量名作用范围(可选)
|
属性
|
描述
|
name
|
传递的参数名
|
value
|
传递的参数值(可选)
|
属性
|
描述
|
doc
|
源 XML 的内容,该属性的内容应该为 String 类型或者 java.io.Reader 的实例,可以用 xml 属性来替代,但是不被推荐
|
var
|
将解析后的 XML 保存在该属性所指定的变量中,之后 XML processing 标签库中的其他标签若要取 XML 中的内容就可以从该变量中得到(可选)
|
scope
|
变量的作用范围(可选)
|
varDom
|
指定保存的变量为 org.w3c.dom.Document 接口类型(可选)
|
scopeDom
|
org.w3c.dom.Document 的接口类型变量作用范围(可选)
|
systemId
|
定义一个 URI ,该 URI 将被使用到 XML 文件中以接入其他资源文件(可选)
|
filter
|
该属性必须为 org.xml.sax.XMLFilter 类的一个实例,可以使用 EL 表达式传入,将对 XML 文件做过滤得到自身需要的部分(可选)
|
RW
123456
28
book1
book2
book3
属性
|
描述
|
value
|
Locale 环境的指定,可以是 java.util.Locale 或 String 类型的实例
|
scope
|
Locale 环境变量的作用范围(可选)
|
属性
|
描述
|
basename
|
资源配置文件的指定,只需要指定文件名而无须扩展名,二组标签共有的属性
|
var
|
|
scope
|
变量的作用范围
|
属性
|
描述
|
key
|
资源配置文件的“键”指定
|
bundle
|
若使用 |
var
|
将显示信息保存为一个变量
|
scope
|
变量的作用范围
|
属性
|
描述
|
value
|
时区的设置
|
var
|
|
scope
|
变量的作用范围
|
属性
|
描述
|
value
|
格式化的数字,该数值可以是 String 类型或 java.lang.Number 类型的实例
|
type
|
格式化的类型
|
pattern
|
格式化模式
|
var
|
结果保存变量
|
scope
|
变量的作用范围
|
maxIntegerDigits
|
指定格式化结果的最大值
|
minIntegerDigits
|
指定格式化结果的最小值
|
maxFractionDigits
|
指定格式化结果的最大值,带小数
|
minFractionDigits
|
指定格式化结果的最小值,带小数
|
-- $12.00
-- $12.0
-- $1,234,567,890.00(那个货币的符号和当前web服务器的 local 设定有关)
-- 123,456.79
-- 123,456.7
-- 123,456.70
-- 1,200% (type 可以是currency、 number、 和percent)。
属性
|
描述
|
value
|
将被解析的字符串
|
type
|
解析格式化的类型
|
pattern
|
解析格式化模式
|
var
|
结果保存变量,类型为 java.lang.Number
|
scope
|
变量的作用范围
|
parseLocale
|
以本地化的形式来解析字符串,该属性的内容应为 String 或 java.util.Locale 类型的实例
|
属性
|
描述
|
value
|
格式化的日期,该属性的内容应该是 java.util.Date 类型的实例
|
type
|
格式化的类型
|
pattern
|
格式化模式
|
var
|
结果保存变量
|
scope
|
变量的作用范围
|
timeZone
|
指定格式化日期的时区
|
属性
|
描述
|
value
|
将被解析的字符串
|
type
|
解析格式化的类型
|
pattern
|
解析格式化模式
|
var
|
结果保存变量,类型为 java.lang.Date
|
scope
|
变量的作用范围
|
parseLocale
|
以本地化的形式来解析字符串,该属性的内容为 String 或 java.util.Locale 类型的实例
|
timeZone
|
指定解析格式化日期的时区
|
${row.userName}
${row.passWord}
<%ArrayList arrayList1 = new ArrayList();
arrayList1.add("aa");
arrayList1.add("bb");
arrayList1.add("cc");
%>
<%request.getSession().setAttribute("arrayList1", arrayList1);%>
${fn:length(sessionScope.arrayList1)}
${fn:contains("ABC", "a")}
${fn:contains("ABC", "A")}
${fn:containsIgnoreCase("ABC", "a")}
${fn:containsIgnoreCase("ABC", "A")}
${fn:startsWith ("ABC", "ab")}
${fn:startsWith ("ABC", "AB")}
${fn:endsWith("ABC", "bc")}
${fn:endsWith("ABC", "BC")}
${fn:indexOf("ABCD","aBC")}
${fn:indexOf("ABCD","BC")}
参数
|
描述
|
array
|
字符串数组。其类型必须为 String[] 类型
|
separator
|
分隔符。其类型必须为 String 类型
|
返回结果
|
返回一个 String 类型的值
|
<% String[] stringArray = {"a","b","c"}; %>
<%request.getSession().setAttribute("stringArray", stringArray);%>
${fn:join(sessionScope.stringArray,";")}
参数
|
描述
|
inputString
|
源字符串。其类型必须为 String 类型
|
beforeSubstring
|
指定被替换字符串。其类型必须为 String 类型
|
afterSubstring
|
指定替换字符串。其类型必须为 String 类型
|
返回结果
|
返回一个 String 类型的值
|
${fn:replace("ABC","A","B")}
参数
|
描述
|
string
|
源字符串。其类型必须为 String 类型
|
delimiters
|
指定分隔符。其类型必须为 String 类型
|
返回结果
|
返回一个 String[] 类型的值
|
${fn:split("A,B,C",",")}
参数
|
描述
|
string
|
源字符串。其类型必须为 String 类型
|
beginIndex
|
指定起始下标(值从 0 开始)。其类型必须为 int 类型
|
endIndex
|
指定结束下标(值从 0 开始)。其类型必须为 int 类型
|
返回结果
|
返回一个 String 类型的值
|
${fn:substring("ABC","1","2")}
${fn:substringBefore("ABCD","BC")}
${fn:toLowerCase("ABCD")}
${fn:toUpperCase("abcd")}
${fn:trim("AB C ")}D
标签名
|
描述
|
empty
|
判断变量是否为空
|
notEmpty
|
与 empty 标签正好相反
|
equal
|
判断变量是否与指定的相同
|
notEqual
|
与 equal 标签正好相反
|
lessThan
|
判断变量是否比指定的小
|
greaterThan
|
判断变量是否比指定的大
|
lessEqual
|
判断变量是否小于等于指定的值
|
greaterEqual
|
判断变量是否大于等于指定的值
|
present
|
检查 header 、 request parameter 、 cookie 、 JavaBean 或 JavaBean propertie 不存在或等于 null 的时候,判断成功
|
notPresent
|
与 present 标签正好相反
|
match
|
比较 String 类型字符串是否与指定的相同
|
notMatch
|
与 match 标签正好相反
|
${attackSolution.attack_event_code}
${attackSolution.attack_mean}
${attackSolution.attack_action}
<%
HashMap paramMap = new HashMap();
paramMap.put("userName", "RW");
paramMap.put("passWord", "123456");
%>
和 标签协作的动作:
…
…
Set Character Encoding
struts.sample.cap1.sample3.util.SetCharacterEncodingFilter
encoding
UTF-8
Set Character Encoding
*.do
action
org.apache.struts.action.ActionServlet
config
/WEB-INF/struts-config.xml
debug
2
1
action
*.do
setSolution.jsp
/WEB-INF/struts-template.tld
/WEB-INF/struts-template.tld
/WEB-INF/struts-bean.tld
/WEB-INF/struts-bean.tld
/WEB-INF/struts-html.tld
/WEB-INF/struts-html.tld
/WEB-INF/struts-logic.tld
/WEB-INF/struts-logic.tld
/WEB-INF/struts-template.tld
/WEB-INF/struts-template.tld
/WEB-INF/struts-tiles.tld
/WEB-INF/struts-tiles.tld
/WEB-INF/struts-nested.tld
/WEB-INF/struts-nested.tld
');"
value=" ">
标签和 EL 表达式:
${attackSolution.attack_event_code}
${attackSolution.attack_mean}
${attackSolution.attack_action}
">
&n, bsp;
${attackSolution.attack_event_code}
${attackSolution.attack_mean}
${attackSolution.attack_action}
">
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
...
:
:
:
">
">
${attackSolution.attack_event_code}
${attackSolution.attack_mean}
${attackSolution.attack_action}
">