Struts2 <s:generator>標籤示例
Struts2 <s:generator>標記用於基於在頁中提供「val」屬性,以產生一個迭代。這裏創建一個Web工程:struts2generatortag,來演示在多個複選框如何設置的默認值,整個項目的結構如下圖所示:
在本教程中,將使用Struts2 <s:generator>標籤來執行以下任務:
使用generator標籤來創建生成迭代器。
使用<s:generator>創建生成迭代器,並使用「Converter」對象修改迭代器值。
1. 動作
有一個方法,Action類返回一個「Converter對象。
GeneratorTagAction
package com.yiibai.common.action;
import org.apache.struts2.util.IteratorGenerator.Converter;
import com.opensymphony.xwork2.ActionSupport;
public class GeneratorTagAction extends ActionSupport{
public String execute() {
return SUCCESS;
}
public Converter getLanguageConverter(){
return new Converter() {
public Object convert(String value) throws Exception {
if("java".equals(value)){
return "\[java value in converter\] - " + value;
}else{
return value;
}
}
};
}
}
2. Generator 標籤示例
下面的JSP頁面使用generator標籤演示動態創建一個迭代器。「separator」屬性是必需的,其分離val到迭代器的條目中。
「converter」屬性是可選的,它允許修改值。在這種情況下,它會調用GeneratorTagAction的getLanguageConverter()方法,如果值等於「Java」字符串並修改值。
generator.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
Struts 2 Generator tag example
Generator tag example.
<s:generator val="%{'java|.net|c|python|shell'}" separator="|">Generator tag with converter example
<s:generator val="%{'java|.net|c|python|shell'}" separator="|"
converter="%{languageConverter}">
找不到任何使用generator標籤示例,因爲不建議在頁面迭代值。
3. struts.xml
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="appendTagAction"
class="com.yiibai.common.action.AppendTagAction" >
<result name="success">pages/appendIterator.jsp</result>
</action>
</package>
4. 示例
http://localhost:8080/struts2generator/generatorTagAction.action