私は struts2 フレームワークを使用するのが初めてで、いくつか混乱しています。アクション クラスに送信するフォームがあります。送信されたフィールドを顧客リストのリストに保存したい。アクション クラスでリストを宣言し、顧客のリストを返すように getModel メソッドを定義し、準備メソッドで (これが正しいかどうかはわかりません)、リストにオブジェクトを追加しました。
JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Add Account </title>
</head>
<body>
<h2>
Customer details
</h2>
<s:form action="AddCustomerAction" name="/example" method="post">
<h1>
<s:textfield label="Enter First Name" name="firstName" key="firstName" required="true" size="25"/>
</h1>
<h1>
<s:textfield label="Enter Last Name" name="lastName" required="true" size="25" />
</h1>
<h1>
<s:textfield label="Enter Address" name="address" required="true" size="25" />
</h1>
<h1>
<s:select value ="state" name="state" list="stateList" label="Select State" listKey="code" listValue="desc" required="true"/>
<h1>
<h1>
<s:textfield label="Enter City" name="city" required="true" size="25" />
</h1>
<h1>
<s:textfield label="Enter Zipcode" name="zipcode" required="true" size="25" />
</h1>
<h1>
<s:submit name="OK"/>
</h1>
</s:form>
</body>
アクションクラス
package example;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import java.util.ArrayList;
import java.util.List;
public class AddCustomerAction extends ActionSupport implements ModelDriven{
private Customer customer = new Customer();
private List<Customer> customerList;
public List<Customer> getModel()
{
return customerList;
}
public String execute()
{
this.printCustomer();
return SUCCESS;
}
public void prepare(){
customerList = new ArrayList<Customer>();
customerList.add(new Customer("first", "last"));
}
private void printCustomer(){
System.out.println("First Name = "+customer.getFirstName());
System.out.println("Last Name = "+customer.getLastName());
System.out.println("Add = "+customer.getAddress());
System.out.println("State = "+customer.getState());
System.out.println("City = "+customer.getCity());
System.out.println("Zipcode = "+customer.getZipcode());
}
アクション クラスでは、フォームから送信された情報を Customer List に保存して、反復処理してデータを表示できるようにします。
これを実行すると、値を入力したにもかかわらず、firstname と lastName が null になります。
私のアプローチ(私が持っているように getModel() と prepare() を設定する)は正しいですか?私は何が欠けていますか?