ページ

2014年12月7日日曜日

Seasarしてみるさー 5 - JSP復習 -

JSPの基礎知識


以前も、GAEの時に少しやったが、今回は復習もかねて。

1. スクリプトレット

    <% %>でJavaコードを記述
    <%= %>で値を表示する

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>
<% for(int i = 1; i <= 10; i++) { %>
  <%= i %>回目<br>
<% } %>
</body>

</html>

↓こんな感じで表示される



















2. タグライブラリ
JSPで任意の機能を持ったタグを利用できるようにしたもの。
上のfor文をタグを使って記述。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>
<c:forEach begin="1" end="10" var="i">
  ${i}回目<br>
</c:forEach>
</body>

</html>

↓同じように表示される
















3. JSP-EL
JavaBeanの値を参照するためのEL(Expression Language)を使用する事ができる。

例)
アクション
public String message;
/**
* 入力画面表示
* @return 遷移画面
*/
    @Execute(validator = false)
public String input() {
    message = "Hello SAStruts!!";
        return "input.jsp";

}

JSP
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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-EL練習</title>
</head>
<body>
${message}
</body>

</html>

↓表示画面








この時、ELはオブジェクトをpageContext、request、session、applicationの順で検索し、
最初に見つかったものを参照。
特殊なものに、empty演算子というのがあるらしい。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>
<h1>結果表示</h1>
${result}<br>
<c:if test="${check == false}">
 未チェック
</c:if>
<c:if test="${check == true}">
 チェックあり
</c:if>
</body>

</html>

<c:if>タグのtest属性で == が使える。
アクションのchekcプロパティに応じて画面表示が可能。






























ELの暗黙オブジェクトなるものもあるらしい。
http://struts.wasureppoi.com/jsp/03_el_implicit_object.html

0 件のコメント:

コメントを投稿