香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > MYSQL >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

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


时间:2020-11-02 13:42 作者:admin


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

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)