一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 簡單說明Java的Struts框架中merge標簽的使用方法

簡單說明Java的Struts框架中merge標簽的使用方法

2020-03-07 14:40goldensun JAVA教程

這篇文章主要簡單介紹了Java的Struts框架中merge標簽的使用方法,Struts是Java的SSH三大web開發框架之一,需要的朋友可以參考下

merge標簽合并標記需要兩個或兩個以上的列表作為參數,并把它們合并在一起,如下所示:

?
1
2
3
4
5
6
7
8
<s:merge var="myMergedIterator">
   <s:param value="%{myList1}" />
   <s:param value="%{myList2}" />
   <s:param value="%{myList3}" />
</s:merge>
<s:iterator value="%{#myMergedIterator}">
   <s:property />
</s:iterator>

如果有兩個列表A和B的值,A1,A2和B1,B2。合并列表,會給出A1,B1,A2,B2。

創建動作類:
首先,讓我們創建一個簡單的類叫做Employee.java,它看起來像:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.yiibai.struts2;
 
import java.util.ArrayList;
import java.util.List;
 
import org.apache.struts2.util.SubsetIteratorFilter.Decider;
 
public class Employee {
  private String name;
  private String department;
 
  public Employee(){}
  public Employee(String name,String department)
  {
   this.name = name;
   this.department = department;
  }
  private List employees;
  private List contractors;
 
  public String execute() {
   employees = new ArrayList();
   employees.add(new Employee("George","Recruitment"));
   employees.add(new Employee("Danielle","Accounts"));
   employees.add(new Employee("Melissa","Recruitment"));
   employees.add(new Employee("Rose","Accounts"));
 
   contractors = new ArrayList();
   contractors.add(new Employee("Mindy","Database"));
   contractors.add(new Employee("Vanessa","Network"));
   return "success";
  }
 
  public Decider getRecruitmentDecider() {
   return new Decider() {
     public boolean decide(Object element) throws Exception {
      Employee employee = (Employee)element;
      return employee.getDepartment().equals("Recruitment");
     }
   };
  }
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public String getDepartment() {
   return department;
  }
  public void setDepartment(String department) {
   this.department = department;
  }
  public List getEmployees() {
   return employees;
  }
  public void setEmployees(List employees) {
   this.employees = employees;
  }
  public List getContractors() {
   return contractors;
  }
  public void setContractors(List contractors) {
   this.contractors = contractors;
  }
 
}

Employee類有兩個屬性 - name 和 department,我們也有兩個員工名單 - employees 和contractors。我們有一個方法叫做getRecruitmentDecider,返回Decider 對象。Decider 實現返回true,如果雇員招聘部門工作,否則返回false。

接下來,讓我們創建一個DepartmentComparator 比較Employee對象:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.yiibai.struts2;
 
import java.util.Comparator;
 
public class DepartmentComparator implements Comparator {
  public int compare(Employee e1, Employee e2) {
   return e1.getDepartment().compareTo(e2.getDepartment());
  }
 
  @Override
  public int compare(Object arg0, Object arg1) {
 return 0;
 }
}

在上面的例子所示,部門比較的基礎上按字母順序排列的部門員工進行比較。

創建視圖
創建一個文件叫做employee.jsp以下內容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Employees</title>
</head>
<body>
  <b>Employees and Contractors Merged together</b>
  <br />
  <s:merge id="allemployees">
   <s:param value="employees" />
   <s:param value="contractors" />
  </s:merge>
  <s:iterator value="allemployees">
   <s:property value="name"/>,
   <s:property value="department"/><br/>
  </s:iterator>
</body>
</html>

合并標記需要兩個或兩個以上的列表作為參數。我們需要給合并一個id,這樣我們就可以重用它。在這個例子中,我們提供了作為參數傳遞給員工和承包商的合并標簽。然后,我們使用“allemployees”ID合并列表遍歷并打印員工的細節。

配置文件
struts.xml中應該像這樣:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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="helloworld" extends="struts-default">
   <action name="employee"
     class="com.yiibai.struts2.Employee"
     method="execute">
     <result name="success">/employee.jsp</result>
   </action>
  </package>
 
</struts>

web.xml中,應該像這樣:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  id="WebApp_ID" version="3.0">
  
  <display-name>Struts 2</display-name>
  <welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <filter>
   <filter-name>struts2</filter-name>
   <filter-class>
     org.apache.struts2.dispatcher.FilterDispatcher
   </filter-class>
  </filter>
 
  <filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

右鍵點擊項目名稱,并單擊 Export > WAR File創建一個WAR文件。然后部署此WAR在Tomcat的webapps目錄下。最后,啟動Tomcat服務器和嘗試訪問URL http://localhost:8080/HelloWorldStruts2/employee.action。這會給出以下畫面:

簡單說明Java的Struts框架中merge標簽的使用方法

延伸 · 閱讀

精彩推薦
  • JAVA教程舉例詳解用Java實現web分頁功能的方法

    舉例詳解用Java實現web分頁功能的方法

    這篇文章主要介紹了舉例詳解用Java實現web分頁功能的方法,這種基本功能現一般通過Hibernate框架來完成,需要的朋友可以參考下 ...

    treeroot2672020-01-10
  • JAVA教程Java實現堆排序(Heapsort)實例代碼

    Java實現堆排序(Heapsort)實例代碼

    這篇文章主要介紹了Java實現堆排序(Heapsort)實例代碼,有需要的朋友可以參考一下 ...

    java教程網5042019-10-24
  • JAVA教程java實現非法訪問異常示例

    java實現非法訪問異常示例

    創建ExceptionTest類,在該類的main()方法中,使用反射獲得String類的所有域,不要使用setAccessible方法修改這些域的可見性,然后通過反射獲得私有域中與”h...

    java技術網2832019-11-11
  • JAVA教程Java基礎教程之對象的方法與數據成員

    Java基礎教程之對象的方法與數據成員

    這篇文章主要介紹了Java基礎教程之對象的方法與數據成員,本文講解對象的方法與數據成員相關知識,因為java是面向對象語言,本文的知識都是經常要用到的...

    junjie2892019-11-27
  • JAVA教程Java中static作用詳解

    Java中static作用詳解

    這篇文章主要介紹了Java中static作用,static表示“全局”或者“靜態”的意思,用來修飾成員變量和成員方法,也可以形成靜態static代碼塊,需要的朋友可以...

    lijiao3912020-01-05
  • JAVA教程java方法重寫實例分析

    java方法重寫實例分析

    這篇文章主要介紹了java方法重寫,較為詳細的講述了Java方法重寫的注意事項,并附帶實例加以說明,需要的朋友可以參考下 ...

    shichen20141642019-12-01
  • JAVA教程詳解Java編程中static關鍵字和final關鍵字的使用

    詳解Java編程中static關鍵字和final關鍵字的使用

    這篇文章主要介紹了詳解Java編程中static關鍵字和final關鍵字的使用,是Java入門學習中的基礎知識,需要的朋友可以參考下 ...

    goldensun3002020-01-06
  • JAVA教程java自定義攔截器用法實例

    java自定義攔截器用法實例

    這篇文章主要介紹了java自定義攔截器用法,實例分析了java自定義攔截器的實現與使用技巧,需要的朋友可以參考下 ...

    瘋狂的流浪4062019-12-23
主站蜘蛛池模板: 国产亚洲精品自在线亚洲情侣 | 免费高清特黄a 大片 | 免费国产一级 | 18hdxxxx日本护士 | 天天干夜夜噜 | 黑人开嫩苞 | 国产农村乱子伦精品视频 | 接吻吃胸摸下面啪啪教程 | 特级淫片欧美高清视频蜜桃 | 龟甲情感超市全文阅读 小说 | 99re8在这里只有精品23 | 从后面撕开老师的丝袜动态图 | 国产精品天天看天天爽 | 国产精品亚洲一区二区 | 亚洲国产区男人本色在线观看欧美 | 全肉np巨肉一女np高h双龙 | 国产东北三老头伦一肥婆 | 五花大绑esebdsm国产 | 亚洲精品视频观看 | 欧美成黑人性猛交xxoo | 男同桌扒开女同桌胸罩喝奶 | 国产精品免费一级在线观看 | 亚洲欧美日本在线观看 | 久久婷婷电影网 | 日本xxxx19| 丝袜美女被艹 | 午夜AV亚洲一码二中文字幕青青 | 午夜宅男影院 | 无码任你躁久久久久久久 | 牛人国产偷窥女洗浴在线观看 | 成年人免费在线看的惊悚动作片 | 精品日韩欧美一区二区三区在线播放 | 精品国产欧美一区二区 | 欧美肥胖老妇做爰变态 | 国产在线精品亚洲第一区香蕉 | 国内精品在线播放 | 青草免费在线 | 手机看片福利 | 青青在线 | 精品女同一区二区三区免费站 | 亚洲精品视 |