Struts2框架标签库要与OGNL表达式组合使用!!!
值栈是Struts特有的,用来控制数据的流入流出,是由Struts创建的一块块内存区域,用来存放数据,每创建一个Action实例,就会创建一个值栈,Action类中的属性值会与相对应的值栈同步,即action类的属性就是值栈内存放的数据,前端取值时,是从值栈中取值.
-
<s:<s:property value="name"/>
取值,name为放在值栈中的值,取存放在actioncontext中的值时需要在name前加#
-
<s:select list="u" listKey="uid" listValue="user" headerKey="0" headerValue="--请选择--" value="uid" ></s:select>
在前端页面遍历集合,并将集合中的某个值循环遍历放入下拉框选项中,
其中
list
属性为Struts值栈中的list
集合或map
集合
listKey
相当于<option>
标签中的value
值,当遍历map
集合时写关键字key
,
listValue
相当于<option>
标签中填写的html内容当遍历map
集合时写关键字value
,
headerKey
相当于头提示文字的key
值,headerValue
是头提示文字
value
是选择默认选中项,uid
为后台值栈中的要选择的集合原本的listKey
值 -
<s:set name="age" value="20" scope="request"> </s:set>
:用来临时设置key-value值,尽量设置scope属性,
值可选择:page
,request
,session
,application
,分别表示设的值的有效范围
当赋的值为字符串时,需要在" "
内加' '
以与数值区别<s:set name="age" value="20" scope="request"> </s:set> <s:property value="#request.age"/> <s:set name="name" value="'tom'" scope="request"> </s:set> <s:property value="#request.name"/>
-
<s:bean id="us" name="entity.User" var="us">
用来创建一个对象,name属性的值为类的路径名,id和var为取对象时用到的值,当使用var时,id取不到
<s:bean id="ua" name="entity.User" var="us">
<s:param name="uid" value="100001"></s:param>
</s:bean>
<s:property value="#us.uid"/><br>
<!-- 下面的取不到 -->
<s:property value="#ua.uid"/>
- `` <s:if test=“user.name==‘aaa’”></s:if><s:else> </s:else>,条件控制语句
<s:bean name="entity.User" var="us">
<s:param name="name" value="'tom'"></s:param>
</s:bean>
<s:if test="#us.name=='tom'">
hello tom!
</s:if>
<s:else>
hello
</s:else>
<s:iterator value="u" status="s"></s:iterator>
循环迭代,功能类似于<c:foreach>
标签,但是使用因为ognl表达式缘故,比<c:foreach>
方便
<s:iterator value="list" status="s">
标签中value
的属性值为要遍历的ognl表达式指向list
或map
集合对象,
status
属性值表示行的信息,有以下可选:选择时要在前加#
<s:property value="user"/>
标签中list
集合时的value
属性值表示对象的属性,
map
集合时写key
或value
关键字,表示取map
中的key
或value
遍历简单集合如List<String> s
时,只写<s:property />
标签,不写value
属性
<s:iterator value="list" status="s">
<s:property value="user"/>,<s:property value="#s.count"/>
</s:iterator>
<s:date name="mydate" format="yyyy-MM-dd"></s:date>
可将后台传来的Date
类型的值格式化,
其中name表示后台存放于值栈中的Date
类型的值,format表示要格式化为何种类型