SQLの窓

2020年08月14日


Tomcat 7(JSP) : 配列, ArrayList, ループ処理

関連する記事

XAMPP 内 Tomcat Version 7 の設定と簡単な JSP の実行テスト


forEach の中の 処理で out.println が使えないので、文字列の処理は ArrayList を使用して行って、out.println は、拡張 for の中で実行しました。

この記事の趣旨は、JSP を使用して java の基礎を学習するというものなので、JSP のタグや Beans は利用しないつもりです。

sample_03.jsp
<%@ page
	language="java"
	import="java.util.*"
	contentType="text/html;charset=utf-8" %>
<%!
// *********************************************************
// ローカル関数
// *********************************************************
public String getData( HttpServletRequest request,String name ) {

	String value = request.getParameter( name );
	if ( value == null ) {
		value = "";
	}

	return value;
}
%>
<%
// *********************************************************
// ページ処理
// *********************************************************
request.setCharacterEncoding("utf-8");

String strField1 = getData( request, "field1");

String strField2 = getData( request, "field2");

// 配列
String[] month = {"睦月","如月","弥生","卯月","皐月","水無月","文月","葉月","長月","神無月","霜月","師走"};

// ArrayList に変換 ( 但し、この場合データを追加できない : 固定 : 配列と同じ )
List<String> listMonth = Arrays.asList( month );

%>
<!DOCTYPE html>
<html>
<head>
<meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<meta charset="UTF-8">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.css">

<style>
#main {
	padding: 30px;
	font-size: 24px;
}

form {
	margin-bottom: 20px;
}

.btn {
	vertical-align: top;
}
</style>
</head>
<body>
<div id="main">

<form method="get">
	<input type="text" name="field1" value="<%= strField1 %>">
	<input type="submit" name="send" value="GET" class="btn btn-info">
</form>

<form method="post">
	<input type="text" name="field2" value="<%= strField2 %>">
	<input type="submit" name="send" value="POST" class="btn btn-info">
</form>


<div class="alert alert-primary"><%= request.getMethod() %></div>

<% 

if ( request.getMethod().equals( "POST" ) ) {

	// 配列
	for( int i = 0; i < month.length; i++ ) {
		out.println( String.format( "%s<br>", month[i] ) );
	}

	out.println("<hr>");
	
	// ArrayList
	for(int i = 0; i < listMonth.size(); i++ ) {
		out.println( String.format( "%s<br>", listMonth.get(i) ) );
	}

	out.println("<hr>");

	// 拡張 for
	for( String value : listMonth ) {
		out.println( String.format( "%s<br>", value ) );
	}

	out.println("<hr>");

	List<String> list = new ArrayList<String>();

	// forEach + ラムダ式 ( ※ forEach の中で out が使えない )
	listMonth.forEach( (value) -> { list.add( String.format( "%sだよ", value )); } );

	for( String value : list ) {
		out.println( String.format( "%s<br>", value ) );
	}

}
%>

</div>
</body>
</html>


includeディレクティブ を用いて、jsp ファイルを二つに分割します

sample_03_base.jsp
<%@ page
	language="java"
	import="java.util.*"
	contentType="text/html;charset=utf-8" %>
<%!
// *********************************************************
// ローカル関数
// *********************************************************
public String getData( HttpServletRequest request,String name ) {

	String value = request.getParameter( name );
	if ( value == null ) {
		value = "";
	}

	return value;
}
%>
<%
// *********************************************************
// ページ処理
// *********************************************************
request.setCharacterEncoding("utf-8");

String strField1 = getData( request, "field1");

String strField2 = getData( request, "field2");

// 配列
String[] month = {"睦月","如月","弥生","卯月","皐月","水無月","文月","葉月","長月","神無月","霜月","師走"};

// ArrayList に変換 ( 但し、この場合データを追加できない : 固定 : 配列と同じ )
List<String> listMonth = Arrays.asList( month );

%>
<%@ include file="sample_03_part_01.jsp" %>


sample_03_part_01.jsp
<%@ page contentType="text/html;charset=utf-8" %>
<!DOCTYPE html>
<html>
<head>
<meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<meta charset="UTF-8">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.css">

<style>
#main {
	padding: 30px;
	font-size: 24px;
}

form {
	margin-bottom: 20px;
}

.btn {
	vertical-align: top;
}
</style>
</head>
<body>
<div id="main">

<form method="get">
	<input type="text" name="field1" value="<%= strField1 %>">
	<input type="submit" name="send" value="GET" class="btn btn-info">
</form>

<form method="post">
	<input type="text" name="field2" value="<%= strField2 %>">
	<input type="submit" name="send" value="POST" class="btn btn-info">
</form>


<div class="alert alert-primary"><%= request.getMethod() %></div>

<% 

if ( request.getMethod().equals( "POST" ) ) {

	// 配列
	for( int i = 0; i < month.length; i++ ) {
		out.println( String.format( "%s<br>", month[i] ) );
	}

	out.println("<hr>");
	
	// ArrayList
	for(int i = 0; i < listMonth.size(); i++ ) {
		out.println( String.format( "%s<br>", listMonth.get(i) ) );
	}

	out.println("<hr>");

	// 拡張 for
	for( String value : listMonth ) {
		out.println( String.format( "%s<br>", value ) );
	}

	out.println("<hr>");

	List<String> list = new ArrayList<>();

	// forEach + ラムダ式 ( ※ forEach の中で out が使えない )
	listMonth.forEach( (value) -> { list.add( String.format( "%sだよ", value )); } );

	for( String value : list ) {
		out.println( String.format( "%s<br>", value ) );
	}

}
%>

</div>
</body>
</html>



posted by lightbox at 2020-08-14 19:17 | java : JSP | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり