2010-12-05 48 views
1

我想學習struts2,所以這是一個非常基本的問題。顯示與struts2和jsp的ArrayList

我有一個頁面input_database.jsp,其對應的類input_database.java

在類文件

我有一個突變基因和訪問字符串的ArrayList。我想在我的.jsp文件中顯示它

我一直在嘗試使用它來做到這一點,但我認爲我正在做一些根本性錯誤。

這裏是我一直試圖在jsp文件中使用的代碼。 arraylist是一個名爲query_data的私有字符串列表。我的最終目標是顯示字符串arraylist的arraylist以顯示我的select語句,但我需要首先找出一些簡單的字符串。 如果有人知道我在做什麼錯,或可以指向我,我已經忽略了會是真棒

感謝

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

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

</s:iterator> 

回答

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

} 
教程

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

我無法得到上述工作。但是我找到了解決方法。 http://www.roseindia.net/jsp/usingbeansinjsp.shtml 使用內聯java,我認爲這叫java bean,讓它通過一個單獨的數據庫類來工作。 – Chris 2010-12-06 06:37:06

0

,如果你想使用在找你的列表jsp頁面然後你的迭代器,但在這之前您的列表不爲空....

<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是一個工作示例(NetBeans 6.9中的項目),說明如何遍歷對象的數組或列表。

此外,如何提交表單,以便在提交時重新創建對象列表。

只需解決參考並開始。

2

在屬性標籤中給出您想要顯示的列表屬性。 假設您的行動類別爲List<User> userNames,那麼您可以按以下方式使用它。用戶類有一個屬性userName。

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

或 如果它是一個簡單的ArrayList,那麼你可以按照如下

List<Integer> integers; 

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

添加一些示例代碼,使其成爲一個很好的答案 – sharakan 2012-11-06 19:51:27

+0

嘿,Sumit,歡迎來到Stackoverflow :)如果你可以添加更多的細節到你的答案,以便有人閱讀它與較少的上下文和知識可能也能夠理解它會很好並且對未來的某個人也有用。 – Amar 2012-11-06 19:52:25

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

的ArrayList 「arrayListName」 使用應該在Struts動作setter和getter。 ArrayList將是一些對象,fieldName是由object包含的屬性的名稱.Like Car是對象,速度是它的屬性。