项目开发中struts常用的标签总结

OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
总的来说JSP页面中的元素<s:property value="xxx"/>,只要在action中有它对应的public Getter即可得到相应的值。

 

在struts2的标签中没有计算一个集合的长度的标签必须使用核心标签中c标签和fn函数标签结合:

如下:备注使用<c:choose>的时候必须使用c:when标签

 <c:choose>
          <c:when test="${requestScope.ticketList != null && fn:length(requestScope.ticketList) > 0}">
      </c:when>
    <c:otherwise>
    </c:otherwise>
 </c:choose>

使用struts2的表里标签如下:注意放在request中的对象必须在request前添加#否则将不会显示

 <s:iterator value="#request.ticketList">
    <s:property value=""/> 用于显示字符串或集合对象中一个对象的一个属性

 </s:iterator>

判断标签的应用:

<s:if test="noticeType==1">
              电话
          </s:if>
          <s:elseif test="noticeType==2">
              短信
          </s:elseif>
          <s:elseif test="noticeType=3">
               邮件
          </s:elseif>
          <s:else>
               无需通知
          </s:else>

 

单选按钮的集合使用如下:

 注意此处使用Map显示默认值为0,显示为价格(#不可以省略哦)

<s:radio name="entity.priorityType" list="#{0:'价格',1:'交通',2:'环境'}" 

value="0" >

</s:radio>              

 

 多项复选框的使用

  <s:checkboxlist name="hotel_Class" onclick="setTicketType('hotel_Class','hotelClass')" list="{'五星','四星','三星','二星','经济型酒店'}" ></s:checkboxlist>
 

文本框的使用:

      <s:textfield name="entity.hotelname" size="30" maxlength="40"></s:textfield>

 

文本域的:

      <s:textarea name="entity.hotelRemark" cols="40" rows="5" ></s:textarea>

 

struts2时间的格式化显示:使用服务端标签和<s:date> 和客户端标签的结合使用

 

        <input type="text" name="entity.startHotelTime" value="<s:date name='entity.startHotelTime' format='yyyy-MM-dd'/>"/>                     
                    

       从request中获取对象

     ActionContext ctx=ActionContext.getContext();
     Map params=ctx.getParameters();

 


Java代码
<s:select label="label" name="name" list="{'name1','name2','name3'}" value="%{'name2'}" />   
 
<s:select label="userList" name="userList" list="userList" listKey="id" listValue="name" /> // userList中为JavaBean   
 
<s:select label="'map'" name="mapList" list="map"/>  

<s:select label="label" name="name" list="{'name1','name2','name3'}" value="%{'name2'}" />

<s:select label="userList" name="userList" list="userList" listKey="id" listValue="name" /> // userList中为JavaBean

<s:select label="'map'" name="mapList" list="map"/> 
选择(select)一个集合的子集(叫做投影),你可以在Collection中使用通配符.

? -所有符合选择逻辑的元素
^ - 符合选择逻辑的第一个元素
$ - 符合选择逻辑的最后一个元素
示例:
JavaBean:
Book.java
private String title;
private String author;
private double price;
Action: private List<Book> bookList;
JSP页面:

<s:iterator value="bookList.{?#this.price > 35}">
      <s:property value="title" /> :<s:property value="price" />
</s:iterator>

Iterator


遍历List

 


Java代码
<s:iterator value="userList" status="status">  
//userList来自Action的public List getUserList()得到,无参的Getter,且修饰符一定为public  
      <s:set name="user"/>  
      <s:property value="name"/>  
      <s:property value="#user.name"/>//来自JSP页面的变量得用#引用  
      <s:property value="top.name"/>  
      <s:property value="top"/>  
      <s:property value="getValue(#user)"/>//getValue为Action中定义的public User getValue(User user)   
</s:iterator> 

<s:iterator value="userList" status="status">
//userList来自Action的public List getUserList()得到,无参的Getter,且修饰符一定为public
      <s:set name="user"/>
      <s:property value="name"/>
      <s:property value="#user.name"/>//来自JSP页面的变量得用#引用
      <s:property value="top.name"/>
      <s:property value="top"/>
      <s:property value="getValue(#user)"/>//getValue为Action中定义的public User getValue(User user)
</s:iterator>

遍历Map


 
1.第一个例子:

<s:select list="{'aa','bb','cc'}" theme="simple" headerKey="00" headerValue="00"></s:select>

2.第二个例子:

<s:select list="#{1:'aa',2:'bb',3:'cc'}"  label="abc" listKey="key" listValue="value"  headerKey="0" headerValue="aabb">

3.第三个例子:

<%HashMap map = new LinkedHashMap();map.put(1,"aaa");map.put(2,"bbb");map.put(3,"ccc");request.setAttribute("map",map);request.setAttribute("aa","2"); %><s:select list="#request.map"  label="abc" listKey="key" listValue="value" value="#request.aa"  headerKey="0" headerValue="aabb"></s:select>

struts2的select标签中,常用的有以下几个属性:

(1)struts2中的select 标签中,必须设置的属性只有一个,即是list。

(2)select标签的list中必须有值,不然会报错。如果没有值,可以加上headerKey, headerValue,这样就可以通过了。如:

xml 代码
<s:select   name="geElement.childType" list="childTypeList" listKey="key" 
listValue="value" headerKey="0" headerValue="--请选择子类型--"/>  
其中,即使list中有值,我们也通常会加上headerKey, headerValue,即列表中显示的第一个选项。注意,headerKey不可以为空,不可以为-1。

(3)list属性:通常是在action中定义的,必须是一个可以迭代的源,如为一个List, Map, Set等。如果是一个Map,那么map的key就对应于select标签中的value,map中的value就对应于select标签中的option。而如果是一个List或者是一个Set,那么可以通过listKey和listValue指定。

(4)listKey和listValue:listKey即对应于select标签中的value, listValue即对应于select标签中的option。

(5)name属性:即是表单中select的名称。

 

 

Java代码
<s:iterator value="map" status="status">  
     <s:property value="key"/>  
     <s:property value="value"/>  
</s:iterator> 

<s:iterator value="map" status="status">
     <s:property value="key"/>
     <s:property value="value"/>
</s:iterator>
例子:


 


Java代码
<s:iterator value="{'a','b','c'}" status="status" >  
      <s:property value="#status.index" />  
      <s:property value="#status.count-1" />  
      <s:property value="top" />-  
      <s:property value="'top'+#status.index+':'+top" />  
</s:iterator> 

<s:iterator value="{'a','b','c'}" status="status" >
      <s:property value="#status.index" />
      <s:property value="#status.count-1" />
      <s:property value="top" />-
      <s:property value="'top'+#status.index+':'+top" />
</s:iterator>

输出:
0 0 a- top0:a
1 1 b- top1:b
2 2 c- top2:c

iterator 中status 的方法:

even : boolean - returns true if the current iteration is even
odd  : boolean - returns true if the current iteration is odd
count : int - returns the count (1 based) of the current iteration
index : int - returns the index (0 based) of the current iteration
first : boolean - returns true if the iterator is on the first iteration
last : boolean - returns true if the iteration is on the last iteration
modulus(operand : int) : int - returns the current count (1 based) modulo the given operand
eg:<s:property value="#stat.modulus(2)" />

IF

 


Java代码
<s:if test="#status.odd">class1</s:if><s:else>class2</s:else>  
<s:if test="type=='Amount'||type==null"> display</s:if>  
//其中type相当<ww:property value="type" />  

 

s:checkboxlist label="包含字段" name="mainKind1.fields" list="#{0 : '标题',1 : '标签',2 : '简介'}"  value="{0,2}"/> 

 <s:checkboxlist label="包含字段" name="mainKind1.fields" list="#{0 : '标题',1 : '标签',2 : '简介'}"  value="{0,2}"/>

这时候 ‘标题’ 和 ‘简介'   被勾中状态, 但  这是静态的 ,不是自动回填 。



                       


   

你可能感兴趣的:(C++,c,struts,C#,三星)