Struts2 <s:generator>標籤示例

Struts2 <s:generator>標記用於基於在頁中提供“val”屬性,以產生一個迭代。這裏創建一個Web工程:struts2generatortag,來演示在多個複選框如何設置的默認值,整個專案的結構如下圖所示:


在本教學中,將使用Struts2 <s:generator>標籤來執行以下任務:
  1. 使用generator標籤來創建生成迭代器。
  2. 使用<s:generator>創建生成迭代器,並使用“Converter”對象修改迭代器值。

1. 動作

有一個方法,Action類返回一個“Converter對象。

GeneratorTagAction

package com.xuhuhu.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" %>
 <html>
<head>
</head>

<body>
<h1>Struts 2 Generator tag example</h1>

1. Generator tag example.
<s:generator val="%{'java|.net|c|python|shell'}" separator="|">
<ol>
<s:iterator>
  <li><s:property /></li>
</s:iterator>
</s:generator>
</ol>

2. Generator tag with converter example
<s:generator val="%{'java|.net|c|python|shell'}" separator="|"
converter="%{languageConverter}">
<ol>
<s:iterator>
  <li><s:property /></li>
</s:iterator>
</s:generator>
</ol>

</body>
</html>
找不到任何使用generator標籤示例,因為不建議在頁面迭代值。

3. struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

 	<constant name="struts.devMode" value="true" />

	<package name="default" namespace="/" extends="struts-default">

		<action name="appendTagAction"
			class="com.xuhuhu.common.action.AppendTagAction" >
			<result name="success">pages/appendIterator.jsp</result>
		</action>

	</package>

</struts>

4. 示例

http://localhost:8080/struts2generator/generatorTagAction.action


參考

  1. Struts2 generator 文檔
  2. Struts2 Converter 文檔
代碼下載 - http://pan.baidu.com/s/1mgm0W1E
上一篇: struts2 <s:append>標籤示例 下一篇: Struts2 <s:merge>標籤示例