java – 将一组自定义对象POST到Struts 2动作

前端之家收集整理的这篇文章主要介绍了java – 将一组自定义对象POST到Struts 2动作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在 Java中将一组自定义对象发布到Struts 2操作?

例如,如果我有以下Java对象:

public class Person {

    private String name;
    private String lastName;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }   
}

并执行以下操作:

public class SavePersons extends ActionSupport {

    private List<Person> persons;

    @Override
    public String execute() throws Exception {
            // Do something
        return SUCCESS;
    }

    public void setPersons(List<Person> persons) {
        this.persons = persons;
    }

}

我想在HTML表单中执行以下操作:

<html>
<body>
<form method="POST" action="http://postHere">
    <input type="text" name="persons[0].name" value="Name1"/>
    <input type="text" name="persons[0].lastName" value="LastName1"/>
    <input type="text" name="persons[1].name" value="Name2"/>
    <input type="text" name="persons[1].lastName" value="LastName2"/>
    <input type="submit" />
</form>
</body>
</html>

有小费吗?

解决方法

你有什么看起来不错.如果您发布或获取设置值,它对struts2没有任何影响.

使用相同的SavePersons类,除了我添加了一个公共列表< Person> getPersons()方法.这是使解决方案有效的必要条件.

并且使用基本相同的形式,除了我更喜欢使用s2标签编写我的表单,它有意义(什么使一些人脱离表单标签是默认的s2主题,你可以全局设置主题简单,标签属性不会工作,但UI标签将像您期望类似的html元素行为一样工作):

<%@taglib prefix="s" uri="/struts-tags"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html> 
<html>
    <head>
        <Meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Person Form</title>
    </head>
    <body>
        <h1>Person Form</h1>
        <s:form action="person-test" method="post">
            <s:textfield name="persons[0].name" label="fName 1"/>
            <s:textfield name="persons[0].lastName"  label="lName 1"/>
            <s:textfield name="persons[1].name" label="fName 2"/>
            <s:textfield name="persons[1].lastName" label="lName 2"/>
            <s:submit/>
        </s:form>
    </body>
</html>

请注意,不需要method =“post”,它是默认值.

这是用于显示表单数据的页面.

<%@taglib prefix="s" uri="/struts-tags"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html> 
<html>
    <head>
        <Meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>List of People</h1>
        <s:iterator value="persons">
            <s:property value="name"/> <s:property value="lastName"/><br/>
        </s:iterator>
    </body>
</html>

它运作得很好.

原文链接:https://www.f2er.com/java/120803.html

猜你在找的Java相关文章