Struts2 <s:generator>标签示例
精华
小牛编辑
150浏览
2023-03-14
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" %> <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.yiibai.common.action.AppendTagAction" > <result name="success">pages/appendIterator.jsp</result> </action> </package> </struts>
4. 示例
http://localhost:8080/struts2generator/generatorTagAction.action
参考
- Struts2 generator 文档
- Struts2 Converter 文档