?
?
?
若N属于Integer类型,返回new Integer(A.intValue()) 若N属于Short类型,返回new Short(A.shortValue()) 若N属于Byte类型,返回new Byte(A.byteValue())
?
?
?
())
?
?
?
?
?
w ?
?
错误。
?
?
?
若N属于Long类型,返回new Long(A.longValue()) 若N属于Float类型,返回new Float(A.floatValue()) 若N属于Double类型,返回new Double(A.doubleValue否则,错误。
若A属于String类型,那么: 如果N属于BigDecimal,那么:
如果new
BigDecimal(A)抛出一个异常,则报错误。 否则,返回ne
BigDecimal(A)。 若N属于BigInteger,那么:
如果new BigInteger(A)抛出一个异常,则报
否则,返回new BigInteger(A)。
若N.valueOf(A)抛出一个异常,则报错误。 否则,返回N.valueOf(A)。
?
否则,报错误。
1.7.4强制A成Character
o
o
o
o
若A属书Number类型,安静地强制转化成Short,然后返回一个Character,它
的数值等于对应的Short。 o
o
否则,报错误
若A是字符型,返回A.charAt(0) 若A属于Boolean类型,则报错 若A属于Character,返回A
若A等于null 或则 \,返回(char)0
1.7.5强制成Boolean
?
若A等于null 或 \返回 false ?
否则,若A属于Boolean,返回A ?
否则,若A是一个String类型,并且Boolean.valueOf(A)不抛出异常,并且返回它。 ?
否则,报错误。
1.7.6强制A成一个枚举型T
o
o
o
o
若A是一个字符串调用Enum.valueOf(T.getClass(),A)方法,并且返回这个结果 若A等于\返回null
若A被分配成T,则安静地强制转化 若A等于null,返回null
1.7.7强制成任何其他类型T
o
若A等于null,则返回null
o
o
?
若A分配成T,则安静地强制转化。
若A为一个字符串,并且T没有含有PropertyEditor:
若A等于\返回null
?
o
?
否则,报错误。
若A为一个字符串并且T的PropertyEditor抛出一个异常:
若A等于\返回null
?
o
o
否则,错误。
否则报错
否则,应用T的PropertyEditor
EL语法
EL的语法很简单,他最大的特点就是使用上很方便 例:
${sessionScope.user.sex}
所有EL都是以 ${ 为起始、以} 为结尾的。
上述EL范例的意思是:从Session取得用户的性别。如果使用之前JSP代码的写法如下: <%
User user = (User)session.getAttribute(\String sex = user.getSex( ); %>
两者相比较之下,可以发现EL的语法比传统JSP代码更为方便、简洁。 EL提供 . 和 [ ] 两种运算符来存取数据,[ ]可以访问集合或者是数组的元素、Bean的属性。下列两者所代表的意思是一样的,但是需要保证要取得对象的那个的属性有相应的setXxx()和getXxx()方法才行。 例:
${sessionScope.user.sex} 等于
${sessionScope.user[\
. 和 [ ] 也可以同时混合使用,如下: ${sessionScope.shoppingCart[0].price}
返回结果为shoppingCart中第一项物品的价格。 在EL中,字符串既可以使用\,可以使用'abc'。 EL运算符
EL的算术运算符和Java中的运算符的大致相同,优先级也相同。 注意:'+' 运算符不会连接字符串了,他只用于加法运算。 EL关系运算符有以下六个运算符
关系运算符 说明 范例 结果 = = 或 eq | 等于 |${ 5 = = 5 } 或 ${ 5 eq 5 } | true != 或 ne | 不等于 |${ 5 != 5 } 或 ${ 5 ne 5 } | false < 或 lt | 小于 |${ 3 < 5 }或 ${ 3 lt 5 } | true > 或 gt | 大于 |${ 3 > 5 }或 ${ 3 gt 5 } | false <= 或 le | 小于等于 |${ 3 <= 5 }或 ${ 3 le 5 } | true >= 或 ge | 大于等于 |${ 3 >= 5 }或 ${ 3 ge 5 } | false empty运算符
Empty运算符主要用来判断值是否为null或空的,例如: ${ empty param.name }
接下来说明Empty运算符的规则: {empty} A
如果A为null时,返回true 如果A不存在时,返回true
如果A为空字符串时,返回true 如果A为空数组时,返回true 如果A为空的Map时,返回true
如果A为空的Collection时,返回true 否则,返回false 注意:
在使用EL关系运算符时,不能够写成:
${param.password1} = = ${param.password2} 或者
${ ${param.password1 } = = ${ param.password2 } } 而应写成
${ param.password1 = = param.password2 } 使用EL从表单中取得数据
与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。一般而言,我们在取得用户的请求参数时,可以利用下列方法: request.getParameter(String name)
request.getParameterValues(String name)
在EL中则可以使用param和paramValues两者来取得数据。 ${param.name}
${paramValues.name}可以取得所有同名参数的值
${paramValues.hobbies[0]}可以通过指定下标来访问特定的参数的值 这里param的功能和request.getParameter(String name)相同,而
paramValues和request.getParameterValues(String name)相同。如果用户填了一个form,form名称有为username的文本框,则我们就可以使用${param.username}来取得用户填入文本框的值。 EL函数
EL中使用函数要写一个要使用到方法的类,然后在配置xxx.tld文件,然后在JSP中使用时和JSP的自定义标签相似。 xxx.tld中的配置
reverse( java.lang.String )
使用EL函数的写法 ${sn:upper('abc')}
注意:在定义EL函数时,都必须为公开静态(public static) EL的隐含对象
EL也可以使用内置对象中设置的属性,需要使用特定的EL内置对象 属性范围 | 在EL中的对象 Page | pageScope Request | requestScope Session | sessionScope Application | applicationScope EL中使用内置对象的属性 ${requestScope.user} 等价于
<%request.getAttribute(\
如果不写出特定的范围 ,那就会在不同的范围间进行搜索了
例:{user}(user是在request范围 request.setAttribute(\) 也就等于
${requestScope.user}
<%request.getAttribute(\EL的隐含对象
对象 类型 说 明 PageContext | javax.servlet.ServletContext |表示此JSP的PageContext
-----------------------------------------------------------------------------------
PageScope | java.util.Map |取得Page范围的属性名称所对应的值
--------------------------------------------------------------------