Core JSTL Mastering the JSPT Standard Tag Library [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Core JSTL Mastering the JSPT Standard Tag Library [Electronic resources] - نسخه متنی

David M. Geary

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید











2.5 Type Coercion


The EL defines a comprehensive set of coercion rules for various data types. Those rules are summarized in Table 2.3.






























































Table 2.3. JSTL Type Coercion[a]

convert to >


Boolean


Character


Number


String


Boolean



ERROR


ERROR


x .toString()


Character


ERROR



(short)x


x .toString()


Number


ERROR


(char)

x



x .toString()


String (not empty)


Boolean.valueOf(

x )


x .charAt(0)


N .valueOf(

x )



Other


ERROR


ERROR


ERROR


x .toString()


null


Boolean.false


(char)0


0


"


"


Boolean.false


(char)0


0


"

[a]

x represents the object being converted,

N represents a Number subclass, and " represents an empty string


In the preceding table, types in the left column are converted into the types specified in the table's header. For example, if you specify an action attribute's value as a string and that attribute's type is Character, the EL will convert that string to the first character in the string by invoking the method x.charAt(0), where x represents the string. Likewise, strings are coerced to Boolean values with the static Boolean.valueOf(x), where x represents the string.

Table 2.3 also shows how null values and empty strings are converted into booleans, characters, numbers, and strings. JSTL actions typically avoid throwing exceptions because the coercions shown in Table 2.3 are applied to their attribute values before they receive them.

If you specify a null value or an empty string in an expression, the EL's coercion rules ensure that sensible default values are used instead; for example:


<c:out value='${count + param.increment}'/>

In the preceding code fragment, the expression specified for the value attribute coerces a

string (a request parameter value named increment) to an

integer which is added to the count scoped variable and sent to the current JspWriter by the <c:out> action.

If the increment request parameter does not exist, param.increment resolves to null. If it exists, but no value was specified for itperhaps it represents an HTML input element in a form that was left blankit resolves to an empty string. Either way, as you can see from Table 2.3, the EL coerces the string value of param.increment to 0, and the expression ${count + param.increment} evaluates to the value of the count scoped variable.

In general, JSTL actions avoid throwing exceptions, instead favoring sensible default values like 0 for null and empty strings.

Another thing you don't have to worry about is throwing a null pointer exception if you try to access an identifier that is null; for example, the expression ${userProfile.address.city} resolves to null if userProfile, address or city is null because the EL coerces that value into one of the appropriate values in Table 2.3.



    / 124