2010-12-05 10 views
1

Ich versuche struts2 zu lernen, also ist das eine ziemlich grundlegende Frage.Zeige eine ArrayList mit struts2 und jsp

Ich habe eine Seite input_database.jsp, und die entsprechende Klasse input_database.java

in der Klassendatei ich eine Arraylist von Strings mit einem Mutator und einem Accessor haben. Ich möchte es in meiner .jsp-Datei anzeigen

Ich habe versucht, ein zu tun, aber ich denke, ich mache etwas grundlegend falsch.

Hier ist der Code, den ich versucht habe, in der JSP-Datei zu verwenden. Die Arraylist ist eine private Liste von Strings namens query_data. Mein ultimatives Ziel ist es, eine Arraylist von Saiten-Arraylisten anzuzeigen, um meine select-Anweisung anzuzeigen, aber ich muss zuerst einige einfache Saiten herausfinden. Wenn jemand weiß, was mache ich falsch, oder mich zu einem Tutorial zeigen kann, die ich übersehen habe, dass

dank

<s:iterator value="query_data" id="something"> 

      <s:property value="something"/><br /> 

</s:iterator> 

Antwort

6

Display.java

import java.sql.Date; 
import java.util.ArrayList; 

import java.util.List; 

import com.opensymphony.xwork2.ActionSupport; 

public class Display extends ActionSupport{ 

    private static final long serialVersionUID = 1L;  
    List<PhoneBean> list = null; 

    public List<PhoneBean> getList() { 
     return list; 
    } 
    public void setList(List<PhoneBean> list) { 
     this.list = list; 
    } 

    public String execute() throws Exception{ 
     list = new ArrayList<PhoneBean>(); 

     PhoneBean bean = new PhoneBean(); 
     bean.setName("juan dela cruz"); 
     bean.setAge(17); 
     bean.setBirthDate(Date.valueOf("1987-1-1")); 
     bean.setContactNumber("12345"); 
     list.add(bean); 

     bean = new PhoneBean(); 
     bean.setName("john cruise"); 
     bean.setAge(14); 
     bean.setBirthDate(Date.valueOf("1988-2-2")); 
     bean.setContactNumber("67890"); 
     list.add(bean); 

     return SUCCESS; 
    } 

} 
genial würde

PhoneBean.java

import java.sql.Date; 
public class PhoneBean { 
    private String name = null; 
    private int age = 0; 
    private Date birthDate = null; 
    private String contactNumber = null; 

    public String getContactNumber() { 
     return contactNumber; 
    } 
    public void setContactNumber(String contactNumber) { 
     this.contactNumber = contactNumber; 
    } 
    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 Date getBirthDate() { 
     return birthDate; 
    } 
    public void setBirthDate(Date birthDate) { 
     this.birthDate = birthDate; 
    } 
} 

struts.xml

<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <package name="default" extends="struts-default"> 
     <action name="Display" class="phoneBook.Display"> 
      <result>/display.jsp</result> 
     </action> 
    </package> 
</struts> 

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"> 

    <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> 

    <session-config> 
     <session-timeout>30</session-timeout> 
    </session-config> 

    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

display.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
    <%@ taglib prefix="s" uri="/struts-tags" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
<s:iterator status="stat" value="list"> 
<s:property value="name"/>  <s:property value="age"/> 
<s:property value="birthDate"/> <s:property value="contactNumber"/> 
</s:iterator> 
</body> 
</html> 
+1

Ich war nicht in der Lage, das oben genannte zu arbeiten. Ich habe jedoch einen Workaround gefunden. http://www.roseindia.net/jsp/usingbeansinjsp.shtml verwendet Inline-Java, Java-Bohnen genannt, denke ich, um es durch eine separate Datenbank-Klasse zu arbeiten. – Chris

0

wenn Sie eine Liste in you'r verwenden möchten Jsp-Seite dann Ihr Iterator aber vor diesem Check Ihre Liste ist nicht leer ....

<s:iterator value="customerList" status="userStatus"> 

    <tr> 
     <td><s:property value="customerId" /></td> // Value is Y'r POJO Field 
     <td><s:property value="name" /></td> 
     <td><s:property value="address" /></td> 
    </tr> 

</s:iterator> 
0

Here ist ein funktionierendes Beispiel (Netbeans 6.9-Projekt) veranschaulicht, wie ein Array oder eine Liste von Objekten iterieren.

Auch, wie Sie das Formular so übermitteln, dass die Liste der Objekte bei der Übergabe neu erstellt wird.

Einfach die Referenzen auflösen und loslegen.

2

Geben Sie im Eigenschaften-Tag das Listenattribut an, das Sie anzeigen möchten. Angenommen, Sie haben ein Feld in Aktionsklasse List<User> userNames, dann können Sie es in der folgenden Weise verwenden. Die Benutzerklasse hat eine Eigenschaft userName.

<s:iterator var="i" step="1" value="userNames"> 
     <s:property value="userName" ></s:property> 
    </s:iterator> 

oder wenn es eine einfache Arraylist ist, dann können Sie verwenden, wie

folgt
List<Integer> integers; 

    <s:iterator var="i" step="1" value="integers"> 
     <s:property></s:property> 
    </s:iterator> 
+1

Fügen Sie einen Beispielcode hinzu, um dies zu einer guten Antwort zu machen. – sharakan

+0

Hey Sumit, willkommen bei Stackoverflow :) Es wäre toll, wenn Sie Ihrer Antwort mehr Details hinzufügen könnten, damit auch jemand mit weniger Kontext und Wissen es verstehen kann und auch in Zukunft für jemanden von Nutzen sein. – Amar

1
<s:iterator var="i" step="1" value="arraylistName"> 
<s:property value="fieldName"> 
</s:iterator> 

Arraylist "arrayListName" sollte Setter und Getter in Verstrebungen wirken. ArrayList würde von irgendeinem Objekt sein, fieldName ist der Name des Attributs, das durch object.Like enthalten wird, ist Auto das Objekt und Geschwindigkeit ist sein Attribut.

+0

Diese Lösung funktioniert. Ich habe die ArrayList innerhalb der Methode initiiert, die in JSP unsichtbar war. Nach global initiiertem und Getter/Setter funktioniert es gut. Vielen Dank :) – Vigneshwaran

Verwandte Themen