java Tapestry 4.1.2 입문 설명 강좌 1/2페이지
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
이것은 Tapestry의 중앙 컨트롤러입니다.Tapestry 페이지의 표시는 모든 요청이 이 Servlet에 전송됩니다.실례1: 가장 간단한 Tapestry 프로그램은 WebRoot에 Home을 추가합니다.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
Tapestry
</body>
</html>
및 사이트 방문:http://localhost:8088/[context path]/app 결과 페이지에 Home이 표시됩니다.html 안의 내용.이것은 Tapestry가 항상'Home'이라는 페이지를 포함하기 때문에 기본적으로 루트 경로 아래의 Home입니다.html 실례 2: 간단한 동적 내용 추가 Home.html 변경:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
Tapestry
:<span jwcid="@Insert" value="ognl:new java.util.Date()"> </span>
</body>
</html>
사이트 재방문:http://localhost:8088/[context path]/앱은 이 페이지에서 Tapestry의 Insert 구성 요소(Component)를 사용합니다.그것은ognl 표현식을 통해 전달되는 매개 변수를 가지고 있다.응용 서버의 시작 매개 변수에 추가:-Dorg.apache.tapestry.disable-caching=true, 페이지 템플릿을 수정할 때마다 서버를 다시 시작하는 것을 피할 수 있습니다.jwc = Java Web Component 실례 3: 링크를 만들고 특정한 페이지를 가리킨다
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
Tapestry
:<span jwcid="@Insert" value="ognl:new java.util.Date()"></span>
<p>
<a href="#" jwcid="@PageLink" page="Home"> </a>
</body>
</html>
. 이번에는 하나의 PageLink 구성 요소를 통해 홈 페이지를 가리키면 PageLink 구성 요소는 자동으로 홈 페이지를 가리키는 링크를 생성한다(이 링크는 신경 쓸 필요가 없다!).실례4: 간단한 계수기는 지금까지java류와 관련이 없지만 Tapestry를 성공적으로 실행시켰습니다!자바 코드를 좀 쓸 때가 됐어요.사용자가 "계수기 1"을 클릭할 때마다 이 계수기를 1을 추가해서 페이지에 이 결과를 표시하는 계수기를 만들고 싶습니다.전통적인 요청-응답 모드에서 우리가 이 문제에 대해 고려해야 할 것은 요청을 제출하고 해당하는 Action을 만들어서 이 요청을 받아들이고 계수기의 값을 유지한 다음에 성공적으로 방향을 바꾼 페이지를 결정하여 결과를 페이지에 표시하는 것이다.Tapestry에서 우리가 고려해야 할 것은: 어느 페이지에서 이 사건을 처리하고 그 결과가 어떻게 페이지에 나타날까요?다음은 홈.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
Tapestry
:<span jwcid="@Insert" value="ognl:new java.util.Date()"></span>
<p>
<a href="#" jwcid="@PageLink" page="Home"> </a>
<p>
:<span jwcid="@Insert" value="ognl:counter"></span>
<a href="#" jwcid="@DirectLink" listener="listener:doClick"> 1</a>
</body>
</html>
DirectLink가 지정한listener는:doClick입니다. 이것은 이벤트를 촉발합니다. 실제로는doClick() 방법을 호출하는 것입니다.doClick() 메서드는 어디에 쓰입니까?현재 페이지의 동적 데이터는 간단하게 얻을 수 없기 때문에 현재 페이지에 대응하는 클래스를 만들어야 합니다. 우리의 방법은 이 클래스에 만들 것입니다.
package com.bjsxt.crm.web.tapestry.test;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.html.BasePage;
public abstract class Home extends BasePage {
@Persist
public abstract int getCounter();
public abstract void setCounter(int count);
public void doClick(){
int counter = getCounter();
counter = counter + 1;
setCounter(counter);
}
}
주의: 이 예에서 클래스 이름은 홈으로 정의해야 한다.listener의 이름은 doClick입니다. doClick () 이 아니라 웹 - inf 디렉터리에 프로필을 추가해야 합니다: app.응용 프로그램
<?xml version="1.0"?>
<!DOCTYPE application PUBLIC
"-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">
<application>
<meta key="org.apache.tapestry.page-class-packages" value="com.bjsxt.crm.web.tapestry.test"/>
</application>
설정의 주요 목적은 Tapestry가 어떻게 페이지와 페이지 종류를 연결하는지 이해하도록 하는 것이다.인스턴스 5: 매개변수가 있는 카운터 Home.html 변경:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
Tapestry
:<span jwcid="@Insert" value="ognl:new java.util.Date()"></span>
<p>
<a href="#" jwcid="@PageLink" page="Home"> </a>
<p>
:<span jwcid="@Insert" value="ognl:counter"></span>
<a href="#" jwcid="@DirectLink" listener="listener:doClick" parameters="ognl:1"> 1</a> <br>
<a href="#" jwcid="@DirectLink" listener="listener:doClick" parameters="ognl:5"> 5</a> <br>
<a href="#" jwcid="@DirectLink" listener="listener:doClick" parameters="ognl:10"> 10</a> <br>
<a href="#" jwcid="@DirectLink" listener="listener:clearCounter"> </a>
</body>
</html>
1 이 다음 페이지 전문을 읽다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.