append 和 iterator
參考:http://www.roseindia.net/struts/struts2/struts2controltags/append-tag.shtml
在Action類的execute方法中,實例化List對象
public String execute()throws Exception{
myList = new ArrayList();
myList.add("
myList.add("Deepak Kumar");
myList.add("Sushil Kumar");
myList.add("Vinod Kumar");
myList.add("Amit Kumar");
myList1 = new ArrayList();
myList1.add("
myList1.add("Himanshu Raj");
myList1.add("Mr. khan");
myList1.add("John");
myList1.add("Ravi Ranjan");
return SUCCESS;
}
jsp頁面中使用append和iterator兩個tag
<s:append id="myAppendList">
<s:param value="%{myList}" />
<s:param value="%{myList1}" />
</s:append>
<s:iterator value="%{#myAppendList}">
<s:property /><br>
</s:iterator>
generator 和 iterator
參考:http://www.roseindia.net/struts/struts2/struts2controltags/generator-tag.shtml
在jsp中使用,'www.Roseindia.net,Deepak Kumar,Sushil Kumar,Vinod Kumar,Amit Kumar'這些內容被分行的顯示在頁面上。
<s:generator val="%{'www.Roseindia.net,Deepak Kumar,Sushil Kumar,Vinod Kumar,Amit Kumar'}" separator=",">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>
參考:http://www.roseindia.net/struts/struts2/struts2controltags/GeneratorTagCountAttribute.shtml
count="5" -->在jsp頁面中顯示前5個
<s:generator val="%{'www.Roseindia.net,Deepak Kumar,Sushil Kumar,Vinod Kumar,Amit Kumar, Sanjay, Vijay '}" count="5" separator=",">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>
參考:http://www.roseindia.net/struts/struts2/struts2controltags/GeneratorTagIdAttribute.shtml
<s:generator val="%{'www.Roseindia.net,Deepak Kumar,Sushil Kumar,Vinod Kumar,Amit Kumar'}" count="4" separator="," id="myAtt" />
<%
Iterator i = (Iterator) pageContext.getAttribute("myAtt");
while(i.hasNext()) {
String s = (String) i.next(); %>
<%=s%> <br/>
<% }
%>
iterator
參考:http://www.roseindia.net/struts/struts2/struts2controltags/iterator-tag.shtml
在Action類的execute方法中實例化一個List
public String execute()throws Exception{
myList = new ArrayList();
myList.add("Fruits");
myList.add("Apple");
myList.add("Mango");
myList.add("Orange");
myList.add("Pine Apple");
return SUCCESS;
}
在Jsp中可以通過list的名字來調用
<s:iterator value="myList">
<s:property /><br>
</s:iterator>
merge
參考:http://www.roseindia.net/struts/struts2/struts2controltags/merge-tag.shtml
在Action類的execute方法中實例化兩個List
public String execute() throws Exception{
myList = new ArrayList();
myList.add("www.Roseindia.net");
myList.add("Deepak Kumar");
myList.add("Sushil Kumar");
myList.add("Vinod Kumar");
myList.add("Amit Kumar");
myList1 = new ArrayList();
myList1.add("www.javajazzup.com");
myList1.add("Himanshu Raj");
myList1.add("Mr. khan");
myList1.add("John");
myList1.add("Ravi Ranjan");
return SUCCESS;
}
在jsp中,用merge tag把兩個List合并,在iterator中用merge的id來調用
<s:merge id="mergeId">
<s:param value="%{myList}" />
<s:param value="%{myList1}" />
</s:merge>
<s:iterator value="%{#mergeId}">
<s:property /><br>
</s:iterator>
顯示順序:
Display first element of the first list.
Display first element of the second list.
Display second element of the first list.
Display second element of the second list.
Display third element of the first list.
Display thrid element of the second list.....and so on.
subset
參考:http://www.roseindia.net/struts/struts2/struts2controltags/subsetTag.shtml
public String execute() throws Exception{
myList = new ArrayList();
myList.add(new Integer(50));
myList.add(new Integer(20));
myList.add(new Integer(100));
myList.add(new Integer(85));
myList.add(new Integer(500));
return SUCCESS;
}
調用Action類中的List
<s:subset source="myList">
<s:iterator>
<s:property /><br>
</s:iterator>
</s:subset>
在頁面上顯示前三個
<s:subset source="myList" count="3">
<s:iterator>
<s:property /><br>
</s:iterator>
</s:subset>
在頁面上顯示從2開始的3個
<s:subset source="myList" count="3" start="2">
<s:iterator>
<s:property /><br>
</s:iterator>
</s:subset>
action tag
參考:http://www.roseindia.net/struts/struts2/struts2controltags/action-tag.shtml
The action tag is a generic tag that is used to call actions directly from a JSP page by specifying the action name and an optional namespace. The body content of the tag is used to render the results from the Action. Any result processor defined for this action in struts.xml will be ignored, unless the executeResult parameter is specified.
在struts.xml中定義action映射
<action name="actionTag" class="net.roseindia.actionTag">
<result name="success">/pages/genericTags/success.jsp</result>
</action>
public String execute() throws Exception{
return SUCCESS;
}
在jsp頁面寫入下面代碼,那么當請求actionTag.action時,無論Action類net.roseindia.actionTag中怎么處理、如何設定頁面轉向,此請求直接轉到successs.jsp頁面
<s:action name="success">
<b><i>The action tag will execute the result and include it in this page.</i></b></div>
</s:action>
bean tag
參考:http://www.roseindia.net/struts/struts2/struts2controltags/bean-tag.shtml
定義一個包含name屬性的普通JavaBean,
public class companyName {
private String name;
public void setName(String name){
this.name =name ;
}
public String getName(){
return name;
}
}
在jsp中調用
<s:bean name="net.roseindia.companyName" id="uid">
<s:param name="name">RoseIndia</s:param>
<s:property value="%{name}" /><br>
</s:bean>
date tag
參考:http://www.roseindia.net/struts/struts2/struts2controltags/date-tag.shtml
private Date currentDate;
public String execute() throws Exception{
setCurrentDate(new Date());
return SUCCESS;
}
<s:date name="currentDate" format="MM/dd/yy" />
<s:date name="currentDate" format="MM/dd/yy hh:mm" />
<s:date name="currentDate" format="MM/dd/yy hh:mm:ss" />
Nice Date (Current Date & Time):<s:date name="currentDate" nice="false" />
Nice Date:<s:date name="currentDate" nice="true" />
include tage
是不是可以替換frame
<body>
<h1><span style="background-color: #FFFFcc">Include Tag (Data Tags) Example!</span></h1>
<s:include value="myBirthday.jsp" />
</body>
param tag
參考:http://www.roseindia.net/struts/struts2/struts2controltags/param-tag.shtml
<ui:component>
<ui:param name="empname">Vinod</ui:param><br>
<ui:param name="empname">Amit</ui:param><br>
<ui:param name="empname">Sushil</ui:param>
</ui:component>
Case 1. <param name="empname">Amit</param> Here the value would be evaluated to the stack as a java.lang.String object.
Case 2. <param name="empname" value="Vinod"/> Here the value would be evaluated to the stack as a java.lang.Object object.
set tag
參考:http://www.roseindia.net/struts/struts2/struts2controltags/set-tag.shtml
set tag給指定范圍內的變量賦值,得到name-value值對
賦值:<s:set name="technologyName" value="%{'Java'}"/>
調用:Technology Name: <s:property value="#technologyName"/>
set tag is used to assign a value to a variable in a specified scope. The parameters name and value in the tag <s:set name="technologyName" value="%{'Java'}"/> acts as the name-value pair. Here we set the parameters as name="technologyName" value="Java".
Text Tag
參考:http://www.roseindia.net/struts/struts2/struts2controltags/text-tag.shtml
在 struts.xml 文件中定義
<action name="textTag" class="net.roseindia.textTag">
<result>/pages/genericTags/textTag.jsp</result>
</action>
在textTag.java文件所在包下,創建一個package.properties,內容如下:
webname1 = http://www.RoseIndia.net
webname2 = http://www.javajazzup.com
webname3 = http://www.newstrackindia.com
在jsp文件調用,如下,前三行顯示package.properties對應信息;第四行顯示Vinod, Amit, Sushil, .......;最后一行empname
<s:text name="webname1"></s:text><br>
<s:text name="webname2"></s:text><br>
<s:text name="webname3"></s:text><br>
<s:text name="empname">Vinod, Amit, Sushil, .......</s:text><br>
<s:text name="empname"></s:text>
property tag
參考:http://www.roseindia.net/struts/struts2/struts2controltags/property-tag.shtml
定義個JavaBean
public class companyName {
private String name;
public void setName(String name){
this.name =name ;
}
public String getName(){
return name;
}
}
第二行給companyName的name屬性賦值;第三行顯示該值(RoseIndia),相當于調用了getName()方法;,
<s:bean name="net.roseindia.companyName" id="uid">
<s:param name="name">RoseIndia</s:param>
<s:property value="%{name}" /><br>
</s:bean>
<!-- Default value -->
<s:property value="name" default="Default Value" />
<s:property value="%{name}" /> it prints the result of myBean's getMyBeanProperty() method.
<s:property value="name" default="Default Value" /> it prints the result of companyName's
getName() method and if it is null, print 'a default value' instead.