|
在JSP网页中,您可以设定属性或JavaBean的作用范围为page、request、session、
application等,之后就可以藉由属性或JavaBean的引用名称,并指定作用范围来存取属性或JavaBean,您可以使用
getAttribute()方法来取得属性,这必须在Scriptlet中使用,而使用存取JavaBean的标签<jsp:
getProperty>可以避免使用Scriptlet,然而其限制是只能取得简单的数据,而不能取得如数组之内的元素数据。 可以使用EL指定属性或JavaBean的引用名称来取得属性或JavaBean的值,先举一个简单的例子,首先撰写一个只有Scriptlet的JSP网页:
<% 如果您连至上面的网页,它会在request中设定"username"属性,然后马上forward至elTest.jsp,而elTest.jsp中只使用HTML标签与EL,如下所示:
<html> 所得到的结果网页如下: <html>
<body> Hello, <b>Justin!! </body> </html> 在这个例子中,您也大致看到Model 1的一个例子,您可以让某些JSP网页实现程序逻辑,而在某些JSP网页中使用EL、JavaBean或是标签等,实现程序逻辑与视图分开的机制。 在EL中,可以指定属性或JavaBean的作用范围来存取它们,这必须使用到EL隐含对象,这将在之后介绍,如果不指定作用范围的话,默认是page、 request、session、application的顺序来寻找EL中所指定的属性。 如果存入的属性对象具有getXXX()之类的方法,则可以使用下面的方式来取得相对应名称的属性: Hello, ${ user.name } !! Your id is ${ user.id }.
例如我们先撰写一个UserBean类:
package onlyfun.caterpillar; 使用下面这个JSP网页来测试它:
<jsp:useBean id="userBean" 当然,就上面这个例子而言,也可以简单的使用<jsp:getProperty>来取得JavaBean的属性值,然而如果JavaBean 返回的是一个数组,该如何取得数组当中的某个元素值呢?使用EL的话,您可以藉由[]运算符来指定所要存取的对象,例如根据索引值来取得返回数组的某个元 素,为了测试,先简单的撰写下面这个测试用的类:
package onlyfun.caterpillar; 可以藉由下面这个JSP网页来进行测试:
<jsp:useBean id="arrayTestBean" 最后传回的结果是: test[0] = Justin test[1] = momor test[2] = Beckyday |