হিসাবে skaffman প্রস্তাব , JSP 2.0 ট্যাগ ফাইল পরিভাষা আছে।
আসুন আপনার সহজ উদাহরণ গ্রহণ করা যাক।
নিম্নলিখিতটি লিখুন WEB-INF/tags/wrapper.tag
<%@tag description="Simple Wrapper Tag" pageEncoding="UTF-8"%>
<html><body>
<jsp:doBody/>
</body></html>
এখন আপনার example.jsp
পৃষ্ঠায়:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:wrapper>
<h1>Welcome</h1>
</t:wrapper>
এটি ঠিক আপনারা যা ভাবেন তা করে।
সুতরাং, এর কিছুটা আরও সাধারণ কিছুতে প্রসারিত করি।
WEB-INF/tags/genericpage.tag
<%@tag description="Overall Page template" pageEncoding="UTF-8"%>
<%@attribute name="header" fragment="true" %>
<%@attribute name="footer" fragment="true" %>
<html>
<body>
<div id="pageheader">
<jsp:invoke fragment="header"/>
</div>
<div id="body">
<jsp:doBody/>
</div>
<div id="pagefooter">
<jsp:invoke fragment="footer"/>
</div>
</body>
</html>
এটি ব্যবহার করতে:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:genericpage>
<jsp:attribute name="header">
<h1>Welcome</h1>
</jsp:attribute>
<jsp:attribute name="footer">
<p id="copyright">Copyright 1927, Future Bits When There Be Bits Inc.</p>
</jsp:attribute>
<jsp:body>
<p>Hi I'm the heart of the message</p>
</jsp:body>
</t:genericpage>
কী তা আপনাকে কিনে? সত্যিই অনেক কিছু, তবে এটি আরও উন্নত হয় ...
WEB-INF/tags/userpage.tag
<%@tag description="User Page template" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<%@attribute name="userName" required="true"%>
<t:genericpage>
<jsp:attribute name="header">
<h1>Welcome ${userName}</h1>
</jsp:attribute>
<jsp:attribute name="footer">
<p id="copyright">Copyright 1927, Future Bits When There Be Bits Inc.</p>
</jsp:attribute>
<jsp:body>
<jsp:doBody/>
</jsp:body>
</t:genericpage>
এটি ব্যবহার করার জন্য: (ধরে নিন আমাদের অনুরোধে একটি ব্যবহারকারী ভেরিয়েবল রয়েছে)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:userpage userName="${user.fullName}">
<p>
First Name: ${user.firstName} <br/>
Last Name: ${user.lastName} <br/>
Phone: ${user.phone}<br/>
</p>
</t:userpage>
তবে এটি আপনাকে অন্য জায়গায় ব্যবহারকারীর বিশদ ব্লকটি ব্যবহার করতে পছন্দ করে। সুতরাং, আমরা এটি রিফ্যাক্টর করব।
WEB-INF/tags/userdetail.tag
<%@tag description="User Page template" pageEncoding="UTF-8"%>
<%@tag import="com.example.User" %>
<%@attribute name="user" required="true" type="com.example.User"%>
First Name: ${user.firstName} <br/>
Last Name: ${user.lastName} <br/>
Phone: ${user.phone}<br/>
আগের উদাহরণটি হয়ে যায়:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:userpage userName="${user.fullName}">
<p>
<t:userdetail user="${user}"/>
</p>
</t:userpage>
জেএসপি ট্যাগ ফাইলগুলির সৌন্দর্য হ'ল এটি আপনাকে মূলত জেনেরিক মার্কআপটিকে ট্যাগ করতে দেয় এবং তারপরে এটিকে আপনার হৃদয়ের সামগ্রীতে রিফ্যাক্টর করতে দেয়।
JSP Tag Files
Tiles
কমপক্ষে আমার জন্য, ইত্যাদি খুব দখলযুক্ত জিনিস আছে । আমি এগুলিকে ব্যবহার করা অনেক সহজ বলে মনে করি কারণ একমাত্র কাঠামো আপনি যা দিচ্ছেন তা কিছুই নয়, পূর্ব ধারণাও নেই। এছাড়াও আপনি অন্যান্য জিনিসের জন্য জেএসপি ট্যাগ ফাইলগুলি ব্যবহার করতে পারেন (উপরের ব্যবহারকারী বিশদ বিস্তৃত অংশ হিসাবে))
এখানে এমন একটি উদাহরণ রয়েছে যা ডিসপ্লেট্যাগের সাথে সমান যা আমি করেছি, তবে এটি সমস্ত ট্যাগ ফাইল (এবং Stripes
ফ্রেমওয়ার্ক, এটি হ'ল: ট্যাগস ..) দিয়ে সম্পন্ন। সারি সারণি, বিকল্প রঙ, পৃষ্ঠা নেভিগেশন ইত্যাদির ফলস্বরূপ:
<t:table items="${actionBean.customerList}" var="obj" css_class="display">
<t:col css_class="checkboxcol">
<s:checkbox name="customerIds" value="${obj.customerId}"
onclick="handleCheckboxRangeSelection(this, event);"/>
</t:col>
<t:col name="customerId" title="ID"/>
<t:col name="firstName" title="First Name"/>
<t:col name="lastName" title="Last Name"/>
<t:col>
<s:link href="/Customer.action" event="preEdit">
Edit
<s:param name="customer.customerId" value="${obj.customerId}"/>
<s:param name="page" value="${actionBean.page}"/>
</s:link>
</t:col>
</t:table>
অবশ্যই ট্যাগগুলি JSTL tags
(যেমন c:if
ইত্যাদি) দিয়ে কাজ করে। কোনও ট্যাগ ফাইলের শৃঙ্খলে আপনি যা করতে পারবেন না তা হ'ল জাভা স্ক্রিপ্টলেট কোড যুক্ত করা, তবে এটি আপনার মনে হতে পারে এমন সীমাবদ্ধতার পরিমাণে তেমনটি নয়। আমার যদি স্ক্রিলেটলেট স্টাফের প্রয়োজন হয় তবে আমি যুক্তিটি কেবল একটি ট্যাগে রেখেছি এবং ট্যাগটি ভিতরে রেখে দেই Easy সহজ।
সুতরাং, ট্যাগ ফাইলগুলি আপনি যা যা চান তা দেখতে অনেক বেশি হতে পারে। সবচেয়ে বেসিক স্তরে, এটি সাধারণ কাটা এবং পেস্ট রিফ্যাক্টরিং। বিন্যাসের একটি অংশ ধরুন, এটি কেটে ফেলুন, কিছু সাধারণ প্যারামিটারাইজেশন করুন এবং এটিকে একটি ট্যাগ আমন্ত্রণের মাধ্যমে প্রতিস্থাপন করুন।
উচ্চতর স্তরে, আপনি এখানে টেবিল ট্যাগের মতো অত্যাধুনিক জিনিসগুলি করতে পারেন।