Java 使用 struts2 和 jsp 显示一个 ArrayList

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4358432/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-14 16:27:19  来源:igfitidea点击:

Display an ArrayList with struts2 and jsp

javastruts2struts

提问by Chris

I am trying to learn struts2, so this is a pretty basic question.

我正在尝试学习 struts2,所以这是一个非常基本的问题。

I have a page input_database.jsp, and its corresponding class input_database.java

我有一个页面 input_database.jsp,和它对应的类 input_database.java

in the class file I have an arraylist of strings with a mutator and an accessor. I want to display it inside my .jsp file

在类文件中,我有一个带有修改器和访问器的字符串数组列表。我想在我的 .jsp 文件中显示它

I've been trying to use a to do it, but I think I'm doing something fundamentally wrong.

我一直在尝试使用 a 来做到这一点,但我认为我在做一些根本错误的事情。

here's the code I've been trying to use in the jsp file. the arraylist is a private list of strings called query_data. my ultimate goal is to display an arraylist of arraylists of strings to display my select statement, but I need to figure out some simple strings first. If anyone knows what I'm doing wrong, or can point me to a tutorial that I've overlooked that'd be awesome

这是我一直试图在 jsp 文件中使用的代码。arraylist 是一个名为 query_data 的私有字符串列表。我的最终目标是显示字符串数组列表的数组列表以显示我的选择语句,但我需要先找出一些简单的字符串。如果有人知道我做错了什么,或者可以指出我忽略的教程,那就太棒了

thanks

谢谢

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

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

</s:iterator>

回答by Mohamed Saligh

Display.java

显示.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

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

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

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

显示.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>

回答by Jimit Tank

if you want to use a list in you'r jsp page then your iterator but before that check your list is not empty....

如果你想在你的 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>

回答by coding_idiot

Hereis a working example(Netbeans 6.9 project) illustrating how to iterate over an array or list of objects.

是一个工作示例(Netbeans 6.9 项目),说明如何迭代数组或对象列表。

Also, how to submit the form such that the list of objects gets re-created on submission.

此外,如何提交表单,以便在提交时重新创建对象列表。

Simply resolve the references and get going.

只需解决参考并开始。

回答by sumit sharma

In property tag give the list attribute which you want to display. suppose you have a filed in action class List<User> userNamesthen you can use it in the following manner. where User class has a property userName.

在属性标签中给出要显示的列表属性。假设您有一个提交的操作类,List<User> userNames那么您可以按以下方式使用它。其中 User 类有一个属性 userName。

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

or if it is a simple arrayList then you can use as follows

或者如果它是一个简单的 arrayList 那么你可以使用如下

List<Integer> integers;

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

回答by Harinder mourya

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

ArrayList "arrayListName" should have setter and getter in struts action. ArrayList would be of some object ,fieldName is the name of the attribute contain by object.Like Car is the object and speed is its attribute.

ArrayList "arrayListName" 在 struts 动作中应该有 setter 和 getter。ArrayList 是某个对象,fieldName 是对象包含的属性的名称。比如 Car 是对象,speed 是它的属性。