読者です 読者をやめる 読者になる 読者になる

JavaBeansを利用したJSPプログラム(その2)

今回のプログラムは2つのJSPファイル(入力ページと結果ページ)と1つのjavaプログラムから出来ています。入力JSPファイルからjavaプログラムへと入力値が渡され、戻り値が別のJSPファイルで表示されるものです。

ToyFactoryBean.java

package chap08_jsp.sec06;

public class ToyFactoryBean {
	private String material;
	private int productCount;

	public ToyFactoryBean(){
		material = null;
		productCount = 0;
	}

	public void setMaterial(String material){
		this.material = material;
	}

	public int getProductCount(){
		return productCount;
	}

	public String getProduct(){
		if(material == null){
			return "材料がありません。";
		}

		String product;
		if(material.equals("wood")){
			product = "積み木";
		}else if(material.equals("tinplate")){
			product = "ブリキのロボット";
		}else{
			product = "ガラクタ";
		}
		material = null;
		productCount ++;
		return product;
	}

}

toyFactoryInputMaterial.jsp

<%@ page language="java" contentType="text/html; charset=windows-31j"
    pageEncoding="windows-31j"%>
<!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=windows-31j">
<title>おもちゃ工場</title>
</head>
<body>
	<FORM method="get" action="toyFactoryMakeToy.jsp">
	おもちゃを作ります。材料を選んでください。<BR/>
	<HR/>
	<INPUT type="radio" name="material" value="wood">木材
	<INPUT type="radio" name="material" value="tineplate" > ブリキ
	<INPUT type="radio" name="material" value="etc"> その他
	<INPUT type="submit" value="送信">
	</FORM>
</body>
</html>

toyFactoryMakeToy.jsp

<%@ page language="java" contentType="text/html; charset=windows-31j"
    pageEncoding="windows-31j"%>
<jsp:useBean id="factory" scope="session" class="chap08_jsp.sec06.ToyFactoryBean"/>
<jsp:setProperty name="factory" property="material" param="material"/>
<!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=windows-31j">
<title>おもちゃ工場</title>
</head>
<body>
	作られたおもちゃ:<jsp:getProperty property="product" name="factory"/><BR/>
	工場によって作られたおもちゃの数:<jsp:getProperty name="factory" property="productCount"/>
	<BUTTON onClick="history.back()">戻る</BUTTON>
</body>
</html>