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>