显示Struts的标签库是一个开放源码套件的定制标记,提供高层次的网络呈现方式,将工作在一个MVC模型。该库提供了一个重要的功能,同时还易于使用。displaytag标签可以处理列显示,排序,分页,裁剪,分组,出口,智能连接和一个可定制的XHTML样式表中的装饰。
在下面的示例中,我们将看到如何获得收入数据显示标签,并做分页和排序。我们将使用Eclipse作为IDE在我们的例子中。
第1步:创建Eclipse动态Web项目和JAR文件拷贝
启动Eclipse,转到文件 - >新建 - >项目 - >动态Web项目
以下是列表中所需的JAR文件被添加到您的项目的Java类路径。下载displaytag标签http://displaytag.sourceforge.net/1.2/download.html从JAR文件。
第2步:创建行动,表格和Bean类
一旦项目被创建,创建3个java文件ForbesData的,UserAction和UserForm中包net.viralpatel.struts.displaytag。
复制下面的内容到ForbesData.java文件。
package net.viralpatel.struts.displaytag;
import java.util.ArrayList;
public class ForbesData {
private int rank;
private String name;
private int age;
private double netWorth;
public ForbesData() {
}
public ForbesData(int rank, String name, int age, double netWorth) {
this.rank = rank;
this.name = name;
this.age = age;
this.netWorth = netWorth;
}
public ArrayList<ForbesData> loadData() {
ArrayList<ForbesData> userList = new ArrayList<ForbesData>();
userList.add(new ForbesData(1, "William Gates III", 53, 40.0));
userList.add(new ForbesData(2, "Warren Buffett", 78, 37));
userList.add(new ForbesData(3, "Carlos Slim Helu & family", 69, 35));
userList.add(new ForbesData(4, "Lawrence Ellison", 64, 22.5));
userList.add(new ForbesData(5, "Ingvar Kamprad & family", 83, 22));
userList.add(new ForbesData(6, "Karl Albrecht", 89, 21.5));
userList.add(new ForbesData(7, "Mukesh Ambani", 51, 19.5));
userList.add(new ForbesData(8, "Lakshmi Mittal", 58, 19.3));
userList.add(new ForbesData(9, "Theo Albrecht", 87, 18.8));
userList.add(new ForbesData(10, "Amancio Ortega", 73, 18.3));
userList.add(new ForbesData(11, "Jim Walton", 61, 17.8));
userList.add(new ForbesData(12, "Alice Walton", 59, 17.6));
userList.add(new ForbesData(12, "Christy Walton & family", 54, 17.6));
userList.add(new ForbesData(12, "S Robson Walton", 65, 17.6));
userList.add(new ForbesData(15, "Bernard Arnault", 60, 16.5));
userList.add(new ForbesData(16, "Li Ka-shing", 80, 16.2));
userList.add(new ForbesData(17, "Michael Bloomberg", 67, 16));
userList.add(new ForbesData(18, "Stefan Persson", 61, 14.5));
userList.add(new ForbesData(19, "Charles Koch", 73, 14));
userList.add(new ForbesData(19, "David Koch", 68, 14));
userList.add(new ForbesData(21, "Liliane Bettencourt", 86, 13.4));
userList.add(new ForbesData(22, "Prince Alwaleed Bin Talal Alsaud", 54, 13.3));
return userList;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getNetWorth() {
return netWorth;
}
public void setNetWorth(double netWorth) {
this.netWorth = netWorth;
}
}
复制以下内容UserForm.java上
package net.viralpatel.struts.displaytag;
import java.util.ArrayList;
public class UserForm extends org.apache.struts.action.ActionForm {
private ArrayList<ForbesData> forbesList;
public ArrayList<ForbesData> getForbesList() {
return forbesList;
}
public void setForbesList(ArrayList<ForbesData> forbesList) {
this.forbesList = forbesList;
}
}
复制以下内容UserAction.java上
package net.viralpatel.struts.displaytag;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class UserAction extends Action {
private final static String SUCCESS = "success";
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm) form;
ForbesData actorData = new ForbesData();
userForm.setForbesList(actorData.loadData());
return mapping.findForward(SUCCESS);
}
}
第3步:创建JSP,struts-config.xml和web.xml文件
在WebContent文件夹和struts-config.xml和web.xml中的WebContent / WEB-INF文件夹中创建index.jsp和user.jsp。
复制以下内容转换成相应的文件。
index.jsp的
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> //原文由 www.software8.co 站长百科译 <jsp:forward page="userAction.do"/>
user.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@taglib uri="http://displaytag.sf.net" prefix="display" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>The World's Billionaires 2009</title> <link href="css/style.css" rel="stylesheet" type="text/css" /> </head> <body> <h2>The World's Billionaires 2009 - Forbes List</h2> <display:table export="true" id="data" name="sessionScope.UserForm.forbesList" requestURI="/userAction.do" pagesize="10" > <display:column property="rank" title="Rank" sortable="true" /> <display:column property="name" title="Name" sortable="true" /> <display:column property="age" title="Age" sortable="true" /> <display:column property="netWorth" title="Net worth ($BIL)" sortable="true" /> </display:table> </body> </html>
struts-config.xml中
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="UserForm" type="net.viralpatel.struts.displaytag.UserForm"/> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> <forward name="welcome" path="/Welcome.do"/> </global-forwards> <action-mappings> <action input="/" name="UserForm" path="/userAction" scope="session" type="net.viralpatel.struts.displaytag.UserAction"> <forward name="success" path="/user.jsp" /> </action> <action path="/Welcome" forward="/welcomeStruts.jsp"/> </action-mappings> <message-resources parameter="com/vaannila/ApplicationResource"/> </struts-config>
web.xml中
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
第4步:执行项目
我们已经完成了这个项目。现在执行的项目在Eclipse中创建一个WAR文件,并在Tomcat上运行。