tomcat7 + struts2でwebアプリケーション(3) ModelDriven

フォームから受け取ったパラメータのアクセサをModelDrivenで分離する。
アクション内にはmodelのアクセサだけでよくなる。

(1)パラメータを保持するクラスを作成する(InputModel.java)

import java.io.Serializable;

public class InputModel implements Serializable{
	private String username;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}

(2)アクションクラスを変更する。

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class TestAction extends ActionSupport implements ModelDriven<InputModel> {
	private InputModel model = new InputModel();

	@Override
	public String execute() throws Exception {
		return "success";
	}

	@Override
	public InputModel getModel() {
		return model;
	}

}

(3)結果ページを作成する。(result.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>result</title>
</head>
<body>

<%-- 単にリストの中身を表示する --%>
<s:value="model.username"/>
</body>
</html>