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

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>