在特殊情況下,我需要與<jsp:useBeanJava 類中的相同。
聽起來使用org.apache.commons.beanutils.BeanUtils.cloneBean(Object bean)會完成這項作業。
但讓我抓狂的是,我找不到與<jsp:標簽關聯的 TLD,也找不到<jsp:useBean.
即使<short-name>jsp</short-name>在谷歌上也沒有給我任何東西。我發現的JSP 規范讓我相信它不像其他的那樣是一個標簽,并且其背后的代碼<jsp:useBean在 Java 的核心中。
我對嗎?我錯過了什么嗎?
uj5u.com熱心網友回復:
<jsp:JSP 頁面中的元素沒有 TLD 。這些元素是 JSP 語言的一部分。使用這種語言,您可以創建 JSP 頁面,但如果您需要使用 JSTL 等自定義 TLD,那么您應該使用taglib指令。
JSP 的有趣之處在于:它現在稱為 Jakarta Server Pages。您可以在文章什么是 JSP?Jakarta Server Pages 簡介。
作為原始的 Java Web 技術之一,JSP 仍然廣泛用于 servlet 和 JSTL。下面介紹如何使用 Jakarta Server Pages 構建連接到 Java 后端的動態網頁。
uj5u.com熱心網友回復:
<jsp:useBean>是一個動作標簽,而不是標簽庫的一部分,參見。https://en.wikipedia.org/wiki/Jakarta_Server_Pages#Syntax,向下滾動到“其他標簽”。
該代碼可能是當時 J2EE 的一部分,或者位于 servlet 容器中。今天它顯然是一個 Eclipse 專案:https ://projects.eclipse.org/projects/ee4j.jsp 。
uj5u.com熱心網友回復:
<jsp:useBean>實際上是“JSP 服務器標記標簽”“服務器在 JSP 規范服務器中知道”,您想到的“標簽”是標準標簽庫 c:f: 是使用 TLD 標簽庫描述符的資源(存盤在一個 jar包作為資源加載)并且來自原始的“自定義標簽”API系統。
自定義標簽不需要放在 .jar 中,它們必須放在/webapplication/WEB-INF/tags/通常與像包含標記檔案一樣操作的非編程標簽相關聯。jar 打包標簽位于檔案夾結構 /webapplication*/META-INF/tags/* 任何標簽,無論它們位于何處,都需要在 XML 標記(如 .tld 檔案)中的完整路徑中命名為包的頂級目錄中的檔案。
uj5u.com熱心網友回復:
如果您對 bean 的需求很簡單,那么您可以直接將代碼添加到您的 JSP。要了解我的意思,請查看從 JSP 生成的 Servlet。每個 JSP 都被轉換為一個 Servlet。例如,考慮以下 JSP。
<jsp:useBean id="myList" class="java.util.ArrayList"/>
${myList.add("My first element")}
<%myList.add("My second element");%>
${myList}
翻譯(在 Tomcat 的作業檔案夾中)是
java.util.ArrayList myList = null;
myList = (java.util.ArrayList) _jspx_page_context.getAttribute("myList", jakarta.servlet.jsp.PageContext.PAGE_SCOPE);
if (myList == null){
myList = new java.util.ArrayList();
_jspx_page_context.setAttribute("myList", myList, jakarta.servlet.jsp.PageContext.PAGE_SCOPE);
}
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${myList.add(\"My first element\")}", java.lang.String.class, (jakarta.servlet.jsp.PageContext)_jspx_page_context, null));
myList.add("My second element");
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${myList}", java.lang.String.class, (jakarta.servlet.jsp.PageContext)_jspx_page_context, null));
useBean 操作標記只是創建一個腳本變數并設定一個作用域變數。你可以在沒有任何特殊標簽的情況下做到這一點。下面的 JSP 做同樣的事情。
<%@ page import="java.util.ArrayList"%>
<%
ArrayList myList2 = new ArrayList();
myList2.add("one");
pageContext.setAttribute("myList2", myList2);
%>
${myList2}
<%=myList2%>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516558.html
標籤:爪哇jsp标签库
