OGNL的使用----表單標籤

Struts2提供了很多表單標籤,大部分表單標籤和HTML表單標籤之間有一一對應的關係,這裏只介紹一些比較特殊的表單標籤。對於表單標籤而言,name和value存在一個特殊的關係,每個表單元素會被映射成Action屬性。

 

使用Struts2標籤必須先導入標籤庫,在頁面使用如下代碼導入Struts2標籤:
<%@taglib prefix="s" uri="/struts-tags"%>

 


textfield標籤:
<s:textfield name="person.firstName"/>

 

 

checkboxlist標籤:

使用簡單集合來生成多個複選框
<s:checkboxlist name="a" lable="請選擇你喜歡的圖書" labelposition="top" list="{'Java編程思想','J2EE企業應用實戰'}"/>

 

使用簡單Map對象來生成多個複選框
<s:checkboxlist name="b" label="請選擇你喜歡的圖書" labelposition="top" list="{'Java編程思想':'2012年8月','J2EE企業應用實戰':'2012年9月'}" listKey="key" listValue="value"/>

 

使用創建的放有多個對象的JavaBean對象來生成多個複選框
<s:bean name="com.service.BookService" id="bs"/>
<s:checkboxlist name="b" label="請選擇你喜歡的圖書" labelposition="top" list="#bs" listKey="author" listValue="name"/>


public class BookService{
    public Book[]getBooks(){
         return new Book[]{
            new Book("Java編程思想","李剛");
            newBook("J2EE企業應用實戰","李剛");
         };
    }
}

 

public class Book{
  private String name;
  private String author;
 
  public Book(String name,String author){
     this.name=name;
     this.author=author;
  }
  //getter&setter...
}

 

 

 

select標籤:

 

使用集合來生成下拉選擇框


<s:select name="a" lable="請選擇你喜歡的圖書" lableposition="top" multiple="true" list="{'Java編程思想','J2EE企業應用實戰'}" />


使用簡單Map對象來生成下拉選擇框


<s:select name="b" lable="請選擇你喜歡的圖書" lableposition="top" multiple="true" list="#{'Java編程思想':'2012年8月','J2EE企業應用實戰':'2012年9月'}" listKey="key" listValue="value"/>


屬性說明:
multiple:設置該列表框是否允許多選
listKey:指定集合中的某個元素作爲複選框的value
listValue:指定集合中的某個元素作爲複選框的標籤

 

 

使用集合裏放多個JavaBean實例來生成下拉選擇框


<s:bean name="com.service.BookService" id="bs"/>
<s:select name="b" lable="請選擇你喜歡的圖書" labelposition="top" multiple="true" list="#bs.books" listKey="author" listValue="name"/>

 

 

 

radio標籤:


使用集合來生成單選框


<s:radio name="a" lable="請選擇你喜歡的圖書" lableposition="top" multiple="true" list="{'Java編程思想','J2EE企業應用實戰'}" />


使用簡單Map對象來生成單選框


<s:radio name="b" lable="請選擇你喜歡的圖書" lableposition="top" multiple="true" list="#{'Java編程思想':'2012年8月','J2EE企業應用實戰':'2012年9月'}" listKey="key" listValue="value"/>


使用集合裏放多個JavaBean實例來生成單選框


<s:bean name="com.service.BookService" id="bs"/>
<s:radio name="c" lable="請選擇你喜歡的圖書" labelposition="top" multiple="true" list="#bs.books" listKey="author" listValue="name"/>

 

 

 

optgroup標籤:
<s:optgroup lable="請選擇你喜歡的圖書" list="#{'Java編程思想':'2012年8月'}" listKey="value" listValue="key"/>
<s:optgroup lable="請選擇你喜歡的圖書" list="#{'J2EE企業應用實戰':'2012年9月'}" listKey="value" listValue="key"/>

 

 

 

token標籤:
這是一個防止多次提交表單的標籤,如果需要該標籤起作用,則應該在Struts2的配置文件中啓用TokenInterceptor攔截器或TokenSessionStoreInterceptor攔截器。
token的實現原理:在表單中增加一個隱藏域,每次加載頁面時,該隱藏域的值都不同,而TokenInterceptor則攔截所有的用戶請求,如果兩次請求時該token對應隱藏域的值相同,則阻止表

單提交。
<s:token />

 

 

 

doubleselect標籤:


doubleselect標籤會生成一個級聯列表框,當選擇第一個下拉列表框時,第二個下拉列表框的內容會隨之而改變。
<s:doubleselect lable="請選擇你喜歡的圖書"
                name="author"
                list="{'李剛','David'}"
                doubleList="top=='李剛'?{'Struts2權威指南','輕量級Java EE企業應用實戰'}:{'Java編程思想','23種設計模式'}"/>

 

使用Map對象來創建doubleselect
<s:set name="bs" value="#{'李剛':{'Struts2權威指南','輕量級Java EE企業應用實戰'},'David':{'Java編程思想','23種設計模式'}}"/>
<s:doubleselect lable="請選擇你喜歡的圖書"
                size="3"
                name="author"
                list="#bs[top]"
                doubleSize="3"
                doubleName="book"/>

 

 

optiontransferselect標籤:


optiontransferselect標籤會生成兩個列表選擇框,並生成系列的按鈕來控制各選項在兩個下拉列表之間的移動、升降。當提交表單時,兩個列表選擇框對應的請求參數都會被提交。

<s:optiontransferselect
                lable="請選擇你喜歡的圖書"
                name="cnbook"
                leftTitle="中文圖書"
                rightTitle="外文圖書"
                list="{'Struts2權威指南','Java編程思想'}"
                multiple="true"
                addToLeftLable="向左移動"
                selectAllLable="全部選擇"
                addAllToRightLable="全部右移"
                headerKey="cnKey"
                headerValue="---選擇中文圖書---"
                emptyOption="true"
                doubleList="{'Expert One-on-One J2EE Design and Development','JavaScript: The Definitive Guide'}"
                doubleName="enBook"
                doubleHeaderKey="enKey"
                doubleHeaderValue="---選擇外文圖書---"
                doubleEmptyOption="true"
                doubleMultiple="true"
/>

 

屬性說明:

list:設置第一個下拉列表選擇框的集合

listKey:設置第一個下拉列表選擇框的value屬性

listValue:設置第一下下拉列表選擇框的lable屬性

doubleList:設置第二個下拉列表選擇框的集合

doubleListKey:設置第二個下拉列表選擇框的value屬性

doubleListValue:設置第二個下拉列表選擇框的lable屬性

doubleMultiple:設置第二個下拉列表選擇框是否允許多選

 

 

 

updownselect標籤:


使用簡單集合來生成可上下移動選項的下拉選擇框
<s:updownselect name="a" label="請選擇你喜歡的圖書"
                lableposition="top"
                moveUpLable="向上移動"
                list="{'Struts2權威指南','Java編程思想'}"/>


使用簡單Map對象來生成可上下移動選項的下拉選擇框
<s:updownselect name="b" lable="請選擇你喜歡的圖書"
                lableposition="top"
                moveDownLable="向下移動"
                list="{'Struts2權威指南':'2012年8月','Java編程思想':'2012年9月'}"
                listKey="key"
                listValue="value"
                emptyOption="true"
/>
              
使用集合裏放多個JavaBean實例來生成可上下移動選項的下拉選擇框
<s:bean name="com.service.BookService" id="bs"/>
<s:updownselect name="c" lable="請選擇你喜歡的圖書"
                lableposition="top"
                selectAllLable="全部選擇"
                list="#bs.books"
                listKey="author"
                listValue="name"
                multiple="true"
/>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章