JSP 6強-アクションラベル


スクリプトタグ
ディレクトリラベル
アクションタグ
=>JSPが提供するデフォルトタグ
-オブジェクト名は小文字で始まる

jsp usebeanのscope(領域),(デフォルトでは省略ページ)

  • page - pageContext
  • request - request
  • session - session
  • application - application
  • setProperty(属性、フィールドの設定-メンバー変数の設定)

  • taglibコアのELを使用するにはgetPropertyを使用する必要はありません
    data transfers object(dto)
  • setPropertyアクションラベル

  • usebeanアクションラベルとともに
  • を使用
  • JavaBeans Setter()メソッドにアクセスし、JavaBeansメンバー変数であるPropertyの値
  • を格納する
    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Insert title here</title>
    </head>
    <body>
    <!-- 
    * setProperty 액션 태그
     - useBean 액션 태그와 함께 사용됨
     - 자바빈즈 Setter() 메소드에 접근하여 자바빈즈의 멤버 변수인 프로퍼티의 값을 저장
     -->
    	<jsp:useBean id="person" class="ch04.com.dao.Person" scope="request"/>
    	<%
    	person.setId(20182005);
    	person.setName("손영흔");
    	%>
    	<jsp:setProperty name="person" property="id" value="20182005"/><!-- name - 어떤 객체인지 -->
    	<jsp:setProperty name="person" property="name" value="손영흔"/>
    	<p>아이디1 : ${person.id}</p>
        <!-- EL, 객체가 있으면 객체의 필드를 다이렉트로 줄 수 있다. taglib가 있기때문에 사용가능-->
    	<p>이름1 : ${person.name}</p>
    
    </body>
    </html>

    setProperty / getProperty


    usebeanアクションラベルによるid属性値(person)
    JavaBean's PersonのProperty IDとnameに値を格納します.
    JavaBean's PersonのProperty IDとnameに値を入力して印刷

    getProperty01.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Action Tag</title>
    </head>
    <body>
    <!-- 
    자바빈즈 Person의 프로퍼티(멤버변수) id와 name을 가져와 출력함
     -->
    	<jsp:useBean id="person" class="ch04.com.dao.Person" />
    	<p>아이디 : ${person.id}</p>
    	<p>이름 : ${person.name}</p>
    	
    	<p>아이디 : <jsp:getProperty name="person" property="id"/></p><!-- 멤버변수 가져오기 -->
    	<p>이름 : <jsp:getProperty name="person" property="name"/></p>
    </body>
    </html>
    
    
    getProperty02.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Action Tag</title>
    </head>
    <body>
    <!-- 
    useBean 액션태그의 id 속성값(person)을 통해
    자바빈즈 Person의 프로퍼티 id와 name에 값을 저장하고
    자바빈즈 Person의 프로퍼티 id와 name에 값을 가져와 화면출력함
    -->
    	<jsp:useBean id="person" class="ch04.com.dao.Person"/>
    	<jsp:setProperty name="person" property="id" value="20182005"/>
    	<jsp:setProperty name="person" property="name" value="이선우"/>
    	<p>아이디 : <jsp:getProperty name="person" property="id" /></p>
    	<p>이 름 : <jsp:getProperty name="person" property="name" /></p>
    	
    </body>
    </html>

    シリアル可能:Javaシリアル

    자바 시스템 내부/외부 서로 객체 또는 데이터를 공유할 수 있도록
    바이트(byte) 형태로 데이터를 변환하고 반대로 다시 
    바이트 형태의 데이터를 객체 또는 데이터로 변환(역직렬화)하는 기술
    ProductRepository.jsp
    package ch04.com.dao;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import dto.Product;
    
    //자바빈즈로 사용할 상품 데이터 접근 클래스
    public class ProductRepository {
    	private List<Product> listOfProducts = new ArrayList<Product>();
    	
    	//생성자
    	public ProductRepository() {
    		Product phone = new Product("P1234", "iPhone 13s", 800000);
    		phone.setDescription("4,7-inch, 1334X750 Renina HD display");
    		phone.setCategory("Smart Phone");
    		phone.setManufacturer("Apple");
    		phone.setUnitsInStock(1000);
    		phone.setCondition("New");
    		
    		Product notebook = new Product("P1235", "LG PC 그램", 1500000);
    		notebook.setDescription("13.3-inch, IPS LED display, 5th Generation");
    		notebook.setCategory("Notebook");
    		notebook.setManufacturer("LG");
    		notebook.setUnitsInStock(1000);
    		notebook.setCondition("Refurbished");
    		
    		Product tablet = new Product("P1236", "Galaxy Tab S", 900000);
    		tablet.setDescription("212.8*125.6*6.6mm, Super AMOLED display");
    		tablet.setCategory("Tablet");
    		tablet.setManufacturer("Samsung");
    		tablet.setUnitsInStock(1000);
    		tablet.setCondition("Old");
    		
    		//List<Product> 객체 타입의 변수에 저장
    		listOfProducts.add(phone);
    		listOfProducts.add(notebook);
    		listOfProducts.add(tablet);
    	}//end constructor
    	//객체 타입의 변수 listOfProducts에 저장된 모든 상품 목록을 가져옴
    	public List<Product> getAllProducts(){
    		return listOfProducts;
    	}
    	
    }
    

    1.アクションラベルの種類


    1)転送:ページフロー制御
    2)include:外部ページを含む
    3)usebean:JavaBeansの設定
    4)setProperty:JavaBeansのProperty(メンバー変数)値の設定
    5)getProperty:JavaBeansのProperty(メンバー変数)値を取得する
    6)param:forward、include、pluginラベルへのパラメータの追加

    2.アクションラベルの転送

  • JSP容器処理
  • より前に出力バッファ内のすべてのコンテンツを空にする
  • .
  • プログラム制御を設定ページ
  • に移動する.

    3.includeアクションラベル

  • 現在のJSPページには、外部ファイル
  • が含まれています.
  • 外部ファイル:JSP、HTML、Subetページ
  • 4.Paramアクションラベル

  • を単独で使用することはできない.
  • を使用
  • パラメータリスト
  • を他のページングに渡すために使用される.
    に質問forwardアクションラベル処理の使用

    1) forward02.jspファイルの作成
    出力
  • gugugudan
  • 動作ラベルを転送し、02 dataを転送する.jspファイル
  • に移動
  • paramアクションラベル、数字5は02に進みます.jspファイル
  • に転送
    2) forward02_data.jspファイルの作成
  • 送信デジタル5の九九乗算出力
  • 問題2.以下の条件により開発する
    1)srcフォルダにch 04を設定します.com.daoパッケージを使用してGuandanクラスを作成し、乗算を計算するプロセス()メソッド
    2) useBean.jspファイルの作成
  • usebeanアクションラベルでGuadanクラスを使用して
  • を記述する.
    出力
  • gugugudan
  • デジタル5に対してGuGuandanクラスのprocess()メソッドを呼び出してgugudan出力
  • を得る.