1.bean标签 如果您使用的是JSP 2.0以下的版本,Bean标签可以让您不必撰写scriplet就取得Servlet相关的讯息,若您使用的是JSP 2.0,则可以使用Expression Language及其隐含物件来取代一些Bean标签。
(1).<bean:write>是Struts标签中最常用的标签之一,其作用是写出request、 session等物件范围的属性值,例如:
<bean:write name="userName"/>
<bean:write>也用于写出指定的JavaBean之属性,例如:
<bean:write name="someBean" property="beanProperty"/>
如果取得JavaBean中的属性时需要额外的参数,可以使用propertyName(paramter)这样的方式来取得,例如要透过 JavaBean上的getValue("name")方法来取得值,则可以使用value(name),也就是:
<bean:write name="someBean" property="value(name)"/>
<bean:write>的scope属性在写出值时用以指定物件范围,预设是request。
(2).<bean:message>
<bean:message>显示讯息资源档中对应于key的value,例如:
<bean:message key="welcome.title"/>
<bean:message key="welcome.greeting"
arg1="caterpillar"
arg2="good morning"/>
arg1、arg2等可以替代讯息档中{0}、{1}等位置的讯息,最多可以有五个
(3).<bean:cookie>、<bean:header>、<bean:parameter>
这几个标签分别用以取得cookie、表头讯息、请求参数讯息,其用法类似,常用属性如下:
- id: 程式变数
- name: cookie、表头或请求参数名称,看您是使用哪一个标签
- value: 没有取得值时的预设值
- multiple: 如果有多重值时,用它来取得一个阵列
multiple用于取得一个多重值,例如若指定<bean:header>的multiple为 null值,将调用HttpServletRequest.getHeaders()方法,而不是调用 HttpServletRequest.getHeader()方法,下面是个简单的使用范例:
<bean:parameter id="para_user" name="user"/>
请求参数user = ${para_user}
<bean:header id="userAgent" name="User-Agent"/>
使用者浏览器:${userAgent}
如果请求参数中包括user=caterpillar,则${para_user}就可以显示caterpillar;事实上,您可以使用EL隐含物件来取得相同的讯息。
<bean:page>
用以取得application、config、request、response等预设物件,并重新命名为自己的变数,例如:
<bean:page id="req" property="request"/>
${req.remoteAddr}
同样的,您也可以使用EL隐含物件pageContext来取得这些相关讯息。
<bean:define>
定义一个值并存入指定的范围,即相当于执行各作用范围的setAttribute()方法,也可以存入JavaBean中,当用属性如下:
- id: 变数名
- value: 存入值
- scope: 指定范围
- name: 也可以指定另一个变数存入
- type: 指定JavaBean型态
- property: 指定JavaBean属性
使用范例如下:
<bean:define id="hello" value="Hello!World!"/>
${hello}
<bean:include>
include其它的网页,例如:
<bean:include id="inc1" page="somepage.jsp"/>
${inc1}
<bean:include id="inc2"
href="http://www.caterpillar.onlyfun.net/"/>
${inc2}
<bean:resource>
读取文字档内容并显示在网页上,例如:
<bean:resource id="text" name="/message.txt"/>
${text}
<bean:struts>
复制Struts内部物件至指定变数中,属性说明如下:
- id: 变数名
- formBean: 指定 ActionForm 名称
- forward: 指定 ActionForward 名称
- mapping: 指定 ActionMapping 名称
使用如下:
<bean:struts id="form" formBean="userForm"/>
${form.username}
<%={form.toString()%>