当前位置: 代码迷 >> Web前端 >> Struts2之Ognl 标签容易笔记 及 简单应用【课上总结】主要实现流程图
  详细解决方案

Struts2之Ognl 标签容易笔记 及 简单应用【课上总结】主要实现流程图

热度:507   发布时间:2013-08-09 15:16:24.0
Struts2之Ognl 标签简单笔记 及 简单应用【课上总结】主要实现流程图

?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>

  相关解决方案