Struts 2 迭代器标签示例

17 Mar 2025 | 阅读 2 分钟

1) 创建 index.jsp 用于输入

这个jsp页面使用struts UI标签创建一个表单。它从用户那里接收姓名,密码和电子邮件ID。

index.jsp
<a href="fetch">findPartner</a>

2) 创建 action 类

这个action类继承了ActionSupport类并覆盖了execute方法。

Find.java
package mypack;
import java.util.ArrayList;
public class Find {
private ArrayList list=new ArrayList();
public ArrayList getList() {
	return list;
}
public void setList(ArrayList list) {
	this.list = list;
}

public String execute(){
	User u1=new User();
	u1.setUserName("Amit");
	u1.setUserPass("kumar");
	u1.setEmail("[email protected]");
	
	User u2=new User();
	u2.setUserName("Vijay");
	u2.setUserPass("kumar");
	u2.setEmail("[email protected]");
	
	list.add(u1);
	list.add(u2);
	
	return "success";
}
}

3) 创建模型

User.java
package mypack;
public class User {
private String userName,userPass,email;
public String getUserName() {
	return userName;
}
public void setUserName(String userName) {
	this.userName = userName;
}
public String getUserPass() {
	return userPass;
}
public void setUserPass(String userPass) {
	this.userPass = userPass;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}
}

4) 创建 struts.xml

这个xml文件定义了一个名为input的额外结果,以及一个拦截器jsonValidatorWorkflowStack。

struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="arr" extends="struts-default">
<action name="fetch" class="mypack.Find" method="execute">
<result name="success">welcome.jsp</result>
</action>
</package>
</struts>    

5) 创建视图组件

它是一个简单的jsp文件,显示用户的信息。

welcome.jsp
<%@ taglib uri="/struts-tags" prefix="s" %>
Data is:<br/>
<s:iterator value="list">
<fieldset>
<table width="40%">
<tr><td><s:property value="userName"/></td></tr>
<tr><td><s:property value="userPass"/></td></tr>
<tr><td><s:property value="email"/></td></tr>
</table>
</fieldset>
</s:iterator>