Struts 2 生成器标签用于基于页面中提供的“ val ”属性生成迭代器。 在本教程中,您将使用Struts 2 生成器标签执行以下任务:
- 使用generator标签创建一个迭代器。
- 用generator标签创建一个迭代器,并使用“ Converter ”对象修改迭代器的值。
1.行动
具有方法的Action类,该方法返回“ Converter ”对象。
GeneratorTagAction
package com.mkyong.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.生成器标签示例
一个JSP页面,显示了如何使用generator标签来动态创建迭代器。 必需使用“ 分隔符 ”属性,该属性将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>
找不到此生成器标记的任何用例,因为我不建议对页面中的迭代器值进行硬核化。
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.mkyong.common.action.AppendTagAction" >
<result name="success">pages/appendIterator.jsp</result>
</action>
</package>
</struts>
4.演示
http:// localhost:8080 / Struts2Example / generatorTagAction.action
参考
标签: struts2
翻译自: https://mkyong.com/struts2/struts-2-generator-tag-example/