?ognl表达式,有点像el表达式,用到struts标签中,不要用在普通标签和其它的地方
?????? 如果是${stu.sid}--->#stu.sid
?????? 如要是${requestScope.stu.sid}--->#request.stu.sid
???????????? ${sessionScope.stu.sname}--->#session.stu.sname
?????? 实在不晓得是哪个用途域? #{attr.stu.sid} 会依次查找
?????? 还有一个作用:
?????? #{'aa','bbb','ccc'}? 构造一个数组
?????? #{1:'男',0:'女'}???? 构造一个map
三.两大块(struts自带的,ajax要用到的dojo标签(要导插件jar)
?? 1. 导入标签(像c标签一样,有两个)
?? 2.? 常见的有
?????? <s:form>?????? 表单
?????? <s:textfield>? 文本框
?????? <s:password>?? 密码框
?????? <s:select>???? 列表框
?????? <s:radio>????? 单选框
?????? <s:checkboxlist> 复选框列表
?????? <s:checkbox>??? 复选框
?????? <s:submit>
?????? <d:datetimepicker> 选日子
?? 3.? <s:iterator value="" var=""> 像<c:forEach> value相当items
?????? 共同的属性 name,value,label
?
?注意了 :? action 中保存值的地方大可分为两个: 一个是 值栈?? 另一个是ActionContext中。
???????????? 放在值栈中的值可在jsp页面直接调用如:<s:property value="name1"/> 无需加作用域点?????
???????????? 放在ActionContext中的用#号取如:<s:property value="#name1"/>? 如果保存在作用域
那么就#作用域点 如:<s:property value="#session.name1"/>?? 其它不知道放在什么地方的可以用
#attr点? 如:<s:property value="#attr.name1"/>
?
?
?
标签简单例子:
?
<!--1-->
<s:iterator value="#{'1':'男','0':'女'}" var="sex">
??? <s:property value="#sex.key"/>
??? <s:property value="#sex.value"/>
</s:iterator>
?
<!--2-->
<!-- 加#是map,不加是list -->
<s:iterator value="{'大中国','小日本','俄罗斯'}" var="country" status="ss">
?? <s:property value="#country"/>
?? <s:property value="#ss.count"/>
?? <s:property value="#ss.index"/>
</s:iterator>
?
?
<!--3-->
<%
? int x = 5;
? pageContext.setAttribute("x",x);
? //ActionContext.getContext().getValueStack().push("yy");
%>
<!-- 判断一个数奇偶 -->
<s:if test="#attr.x%2==1">
?? 奇数
</s:if>
<s:else>
?? 偶数
</s:else>
?
?
<!--4-->
<!-- 追加 -->
<s:append var="list3">
?? <s:param value="{'a','b','c'}"></s:param>
?? <s:param value="{'1','2'}"></s:param>
</s:append>
<s:iterator value="#list3" var="ll">
? ${ll} <br>
</s:iterator>
?
?
<!--5-->
<!-- 合并 -->
<s:merge var="list3">
?? <s:param value="{'a','b','c'}"></s:param>
?? <s:param value="{'1','2'}"></s:param>
</s:merge>
<s:iterator value="#list3" var="ll">
? ${ll} <br>
</s:iterator>
?
?
<!--6-->
<!-- 把字符分隔数组,相当split -->
<s:generator separator=";" val="'吃;喝;玩'" var="list">
</s:generator>
?<s:iterator value="#list" var="ll">
????? ${ll } <br>
?? </s:iterator>
<s:debug></s:debug>
?
?
<!--7-->
<!-- 求子集合subset -->
<s:subset source="{'a','b','c','d','e','f','g'}" start="2" count="4">
?? <s:iterator>
?????? <s:property/>
?? </s:iterator>
</s:subset>?
?
?
<!--8-->
<!-- 实例化-->
<s:bean name="com.dao.StuDao" var="stuDao"></s:bean>
<!-- 调用方法并循环输出 -->
<s:iterator value="#stuDao.getAllStudent()" var="s">
??? <s:property value="#s.sid"/>
</s:iterator>
<s:debug></s:debug>
?
?
<!--9-->
<!-- 实例化-->
<s:bean name="com.dao.StuDao" var="stuDao"></s:bean>
<!-- 实例化客户排序对象 -->
<s:bean name="com.vo.MySort" var="mysort"></s:bean>
<!-- 排序 -->
<s:sort comparator="#mysort" source="#stuDao.getAllStudent()" >
?? <s:iterator var="s">
????? <s:property value="#s.sid"/>
?? </s:iterator>??
</s:sort>