Отображение 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)


arrow_upward
6
arrow_downward

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

arrow_upward
2
arrow_downward

В теге свойств укажите атрибут списка, который вы хотите отобразить. предположим, что у вас есть зарегистрированный класс действий 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

arrow_upward
1
arrow_downward

 <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

arrow_upward
0
arrow_downward

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

arrow_upward
0
arrow_downward

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

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

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

person coding_idiot    schedule 03.02.2011