最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Java的Struts框架中append标签与generator标签的使用

来源:动视网 责编:小采 时间:2020-11-09 20:53:44
文档

Java的Struts框架中append标签与generator标签的使用

Java的Struts框架中append标签与generator标签的使用:append 标签: 这些append标签需要两个或两个以上的列表作为参数,并追加它们放在一起,如下图所示: <s:append var=myAppendIterator> <s:param value=%{myList1} /> <s:param value=%{myLis
推荐度:
导读Java的Struts框架中append标签与generator标签的使用:append 标签: 这些append标签需要两个或两个以上的列表作为参数,并追加它们放在一起,如下图所示: <s:append var=myAppendIterator> <s:param value=%{myList1} /> <s:param value=%{myLis


append 标签:
这些append标签需要两个或两个以上的列表作为参数,并追加它们放在一起,如下图所示:

<s:append var="myAppendIterator">
 <s:param value="%{myList1}" />
 <s:param value="%{myList2}" />
 <s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
 <s:property />
</s:iterator>

如果有两个列表A和B的值A1,A2和B1,B2。合并列表,会给你的A1,A2,B1,B2,而append 名单,会有A1,A2,B1,B2。

创建动作类:
首先,让我们创建一个简单的类叫做Employee.java,它看起来像:

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对象:

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以下内容:

<%@ 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:append id="allemployees">
 <s:param value="employees" />
 <s:param value="contractors" />
 </s:append >
 <s:iterator value="allemployees">
 <s:property value="name"/>,
 <s:property value="department"/><br/>
 </s:iterator>
</body>
</html>

append标签需要两个或两个以上列出作为参数。我们需要给予追加一个id,这样我们就可以重用它。在这个例子中,我们提供了作为参数传递给员工和承包商的附加标签。然后,我们使用“allemployees”ID遍历附加列表和打印员工的细节。

配置文件
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="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中,应该像这样:

<?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。这会给出以下画面:

generator 标签:
generator标签生成一个迭代器的基础上提供val属性。以下generator标签生成一个迭代器,并使用迭代器标签打印出来。

<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
 <s:iterator>
 <s:property /><br/>
 </s:iterator>
</s:generator>

我们经常遇到的一些情况,必须创建列表或数组上遍历列表。可以创建列表或数组使用scriptlet或者可以使用generator 标签。 tag.

创建action类:

package com.yiibai.struts2;

public class HelloWorldAction{
 private String name;

 public String execute() throws Exception {
 return "success";
 }
 
 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }
}

创建视图
下列 helloWorld.jsp 展示使用generator 标记:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>

<h2>Example of Generator Tag</h2>
<h3>The colours of rainbow:</h3>

<s:generator val="%{'Violet,Indigo,Blue,
 Green,Yellow,Orange,Red '}" count="7" 
 separator=",">
 <s:iterator>
 <s:property /><br/>
 </s:iterator>
</s:generator> 
 
</body>
</html>

在这里,我们创建一个generator 标签,我们要求它解析的字符串,其中包含逗号分隔的列表,形成了彩虹的颜色。我们告诉发电机标签,分隔符是“,”我们希望所有七个值在列表中。如果我们只关心前三个值,然后我们会设置计数至3。发电机标记在体内,我们使用了迭代器去通过由generator 标记创建的值的打印属性的值。

配置文件
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="helloworld" extends="struts-default">
 
 <action name="hello" 
 class="com.yiibai.struts2.HelloWorldAction" 
 method="execute">
 <result name="success">/HelloWorld.jsp</result>
 </action>

 </package>
</struts>

web.xml 应该像这样:

<?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/hello.action。这会给出以下画面:

您可能感兴趣的文章:

  • jsp 开发之struts2中s:select标签的使用
  • Struts2 自定义下拉框Tag标签
  • 简单说明Java的Struts框架中merge标签的使用方法
  • Java的Struts框架中的if/else标签使用详解
  • Java的Struts框架中<results>标签的使用方法
  • struts2的select标签用法实例分析
  • Struts2的s:radio标签使用及用jquery添加change事件
  • Struts之logic标签库详解
  • jsp struts1 标签实例详解
  • struts2标签总结_动力节点Java学院整理
  • 文档

    Java的Struts框架中append标签与generator标签的使用

    Java的Struts框架中append标签与generator标签的使用:append 标签: 这些append标签需要两个或两个以上的列表作为参数,并追加它们放在一起,如下图所示: <s:append var=myAppendIterator> <s:param value=%{myList1} /> <s:param value=%{myLis
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top