Отображение ArrayList с помощью struts2 и jsp

Я пытаюсь изучить struts2, так что это довольно простой вопрос.

У меня есть страница input_database.jsp и соответствующий класс input_database.java

в файле класса у меня есть массив строк с мутатором и аксессором. Я хочу отобразить его в моем файле .jsp

Я пытался использовать a для этого, но я думаю, что делаю что-то принципиально неправильное.

вот код, который я пытался использовать в файле jsp. arraylist — это частный список строк с именем query_data. моя конечная цель - отобразить массив массивов строк для отображения моего оператора выбора, но сначала мне нужно выяснить некоторые простые строки. Если кто-нибудь знает, что я делаю неправильно, или может указать мне на учебник, который я пропустил, это было бы здорово

Спасибо

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

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

</s:iterator>

person Chris    schedule 05.12.2010    source источник


Ответы (5)


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>
person Mohamed Saligh    schedule 05.12.2010
comment
Я не смог заставить вышеперечисленное работать. Однако я нашел обходной путь. roseindia.net/jsp/usingbeansinjsp.shtml использует встроенный Java, который, как мне кажется, называется Java Beans , чтобы заставить его работать через отдельный класс базы данных. - person Chris; 06.12.2010

В теге свойств укажите атрибут списка, который вы хотите отобразить. предположим, что у вас есть зарегистрированный класс действий List<User> userNames, тогда вы можете использовать его следующим образом. где класс User имеет свойство userName.

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

или если это простой список массивов, вы можете использовать его следующим образом

List<Integer> integers;

    <s:iterator var="i" step="1" value="integers">
        <s:property></s:property>
    </s:iterator>
person sumit sharma    schedule 06.11.2012
comment
Привет, Сумит, добро пожаловать в Stackoverflow :) Было бы здорово, если бы вы могли добавить больше деталей в свой ответ, чтобы кто-то, читающий его с меньшим контекстом и знаниями, мог также понять его и быть полезным кому-то в будущем. - person Amar; 06.11.2012

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

ArrayList "arrayListName" должен иметь сеттер и геттер в действии struts. ArrayList будет некоторым объектом, fieldName - это имя атрибута, содержащегося в объекте. Как и автомобиль, это объект, а скорость - его атрибут.

person Harinder mourya    schedule 25.04.2016
comment
Это решение работает. Я инициировал ArrayList внутри метода, который был невидим в JSP. После глобальной инициации и геттера/установщика он работает нормально. Спасибо :) - person Vigneshwaran; 29.08.2017

если вы хотите использовать список на своей странице 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>
person Jimit Tank    schedule 06.12.2010

Вот рабочий пример (проект Netbeans 6.9), иллюстрирующий, как перебирать массив или список объектов.

Кроме того, как отправить форму, чтобы список объектов воссоздавался при отправке.

Просто разрешите ссылки и приступайте к работе.

person coding_idiot    schedule 03.02.2011