5月26日

JSTL

HTTPメソッド

よく使われるHTTPメソッド

  • GET
  • POST
  • PUT
  • DELETE

CRUD

CRUDとSQLとHTTPメソッドは対応している。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!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>JSP Sample</title>
</head>
<body>

<h1>JSP Sample</h1>
<p>日本語も表示できるかな?</p>

<% int count = 10; %>
<%=count %>
<%=new java.util.Date() %>
<%-- JSPコメントです --%>
<!-- HTMLコメントです -->
<br/>

<%
	List<String> list = new ArrayList<String>();
	list.add("赤池");
	list.add("井本");
	list.add("大津");
	request.setAttribute("list", list);

	Map<String, String> map = new HashMap<String, String>();
	map.put("red", "赤");
	map.put("green", "緑");
	map.put("blue", "青");
	request.setAttribute("map", map);

	request.setAttribute("names", request.getHeaderNames());
	Enumeration<String> e = request.getHeaderNames();
	while(e.hasMoreElements()){
		String key = e.nextElement();
		out.println(key + "=" + request.getHeader(key) + "<br/>");
	}
%>

<c:forEach var="name" items="${list}">
	${name}<br/>
</c:forEach>

<c:forEach var="color" items="${map}">
	${color}<br/>
</c:forEach>



</body>
</html>

c:ifタグ

c:if タグによってJSPの中で条件分岐するコードを記述できます。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!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>JSTLのifタグ</title>
</head>
<body>

<%
	request.setAttribute("count", 10);
%>

<c:set var="count" value="15" />

<c:if test="${count == 10}">
	count: <c:out value="${count}"/>
</c:if>

</body>
</html>

c:forEach と c:if の併用

c23プロジェクトの Media クラスを再利用する。

  1. Javaリソースを右クリックして[新規]-[パッケージ]を選択
  2. 名前に abc と入力して「完了」をクリック
  3. c23 プロジェクトの Media クラスをコピー
  4. abc パッケージを右クリックして[貼り付け]を選択
  5. 新しくJSPを追加する。

    1. WebContentを右クリックして[新規]-[JSP File]を選択
    2. 名前に table.jsp と入力して「完了」をクリック
    3. index.jsp の page import と taglib ディレクティブの行を貼り付ける

    Mediaにコンストラクタを追加する。

    package abc;
    import java.util.Date;
    
    public class Media {
    	private String title;
    	private String author;
    	private Date created;
    	private int size;
    	private int length;
    
    	public Media() {
    		this("", "", 0, 0, 0);
    	}
    	public Media(String title, String author, int size, int length, long created) {
    		this.title = title;
    		this.author = author;
    		this.size = size;
    		this.length = length;
    		this.created = new Date(created);
    	}
    	public String getTitle() {
    		return title;
    	}
    	public void setTitle(String title) {
    		this.title = title;
    	}
    	public String getAuthor() {
    		return author;
    	}
    	public void setAuthor(String author) {
    		this.author = author;
    	}
    	public Date getCreated() {
    		return created;
    	}
    	public void setCreated(Date created) {
    		this.created = created;
    	}
    	public int getSize() {
    		return size;
    	}
    	public void setSize(int size) {
    		this.size = size;
    	}
    	public int getLength() {
    		return length;
    	}
    	public void setLength(int length) {
    		this.length = length;
    	}
    }
    

    JSPのスクリプトレットでMediaをListに追加する。

    table.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ page import="abc.*,java.util.*" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!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>テーブル</title>
    <head>
    <body>
    
    <%
    	List<Media> list = new ArrayList<Media>();
    	list.add(new Media("おはよう", "奥本", 100, 0, 0));
    	list.add(new Media("こんにちは", "乙女", 200, 0, 0));
    	list.add(new Media("こんばんは", "梶原", 300, 0, 0));
    	request.setAttribute("list", list);
    %>
    
    <table>
    <tr><th>タイトル</th><th>作者</th><th>サイズ</th></tr>
    
    <c:forEach var="m" items="${list}">
    	<tr>
    		<td>${m.title}</td>
    		<td>${m.author}</td>
    		<td>${m.size}</td>
    	</tr>
    </c:forEach>
    
    </table>
    
    </body>
    </html>
    

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です