實戰練習之Jsp自定義標籤
實現JSP自定義標籤分以下幾步:
1、完成自定義標籤的方法(實現主要的業務邏輯)。
2、配置tld檔案。
3、在jsp頁面引用標籤。
程式碼如下:
標籤實現類UserInfoTag.java,繼承TagSupport,重寫doStartTag()方法。在該方法中實現主要的業務邏輯。
package org.springboot.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class UserInfoTag extends TagSupport{
public User user = null;
@Override
public int doStartTag() throws JspException{
try{
JspWriter out = this.pageContext.getOut();
out.println("尊敬的使用者 "+user.getUserName()+"您好!
");
}catch(Exception e){
throw new JspException(e.getMessage());
}
return SKIP_BODY;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
自定義標籤配置檔案uum.tld
UUM JSP Form Tag Library 1.0 form uum <!-- 可以自定義 -->userTag <!-- 標籤名稱 -->org.springboot.tag.UserInfoTag <!-- 實現方法的位置 -->empty user <!-- 入參名稱 -->false <!-- 該入參是否必須 -->true
引用自定義標籤的jsp檔案 ,userTag.jsp
自定義標籤
<!-- 變數名稱和變數型別要和標籤的實現方法中匹配 -->
自定義標籤的展示過程可以理解為,當瀏覽器解讀該JSP頁面時,到引用自定義標籤的地方會根據標籤的uri和標籤名找到對應在tld中的實現方法,執行自定義標籤的實現方法,就會看到最後的結果。
一般的WEB專案可以直接訪問引用的jsp頁面就可以看到效果,即
因為用的是springBoot框架,所以要增加一個截去請求的跳轉方法,跳轉到相應的jsp頁面。
UserTagController.java
package org.springboot.simple.controller;
import java.io.IOException;
import java.util.ArrayList;
import org.springboot.tag.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class PageController {
@RequestMapping("/sayHello")//請求名稱
public ModelAndView userTag() {
//跳轉頁面路徑
ModelAndView mav = new ModelAndView("/userTag");
//定義引數
User user = new User();
user.setUserName("呦呦米");
//將引數傳到jsp頁面
mav.addObject("user", user);
return mav;
}
}
還有一個用到的User.java實體,練習的時候可以不用實體,直接用字串,在userTag.java中定義 String userName; 並生成get(),set()方法,更簡單。
package org.springboot.tag;
public class User {
public String userName;
public String id;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
瀏覽器輸入 ,效果如下:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4289/viewspace-2798485/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JSP 自定義標籤介紹JS
- JSP自定義標籤就是如此簡單JS
- 擴充spring元件之自定義標籤Spring元件
- spring 自定義標籤Spring
- 自定義標籤FlowTagLayout
- jsp標籤jsp:useBean用法JSBean
- JUnit5學習之五:標籤(Tag)和自定義註解
- spring原始碼深度解析— IOC 之 自定義標籤解析Spring原始碼
- HTML標籤練習(1)HTML
- Android 自定義 View 實戰之 PuzzleViewAndroidView
- 自定義View事件之進階篇(四)-自定義Behavior實戰View事件
- 死磕Spring之IoC篇 - 解析自定義標籤(XML 檔案)SpringXML
- 聊聊自定義SPI如何使用自定義標籤注入到spring容器中Spring
- Flink的sink實戰之四:自定義
- 強化學習實戰 | 自定義Gym環境之掃雷強化學習
- Django自定義模板標籤與過濾器Django過濾器
- Android自定義View實現流式佈局(熱門標籤效果)AndroidView
- JSP condition練習JS
- Flutter實戰之自定義日誌列印元件Flutter元件
- Flutter 自定義 Widget 之餅形圖實戰Flutter
- 強化學習實戰 | 自定義Gym環境之井字棋強化學習
- 強化學習實戰 | 自定義gym環境之顯示字串強化學習字串
- HTML5 之語義標籤HTML
- JSP C 標籤的常見用法JS
- 強化學習實戰 | 自定義Gym環境強化學習
- Spring 原始碼(4)在Spring配置檔案中自定義標籤如何實現?Spring原始碼
- 實戰|如何自定義SpringBoot Starter?Spring Boot
- Django5關於 自定義過濾器和標籤Django過濾器
- 前端開發入門到實戰:html5語義化標籤前端HTML
- 自定義View事件篇進階篇(二)-自定義NestedScrolling實戰View事件
- RAG實戰5-自定義prompt
- 【Flutter實戰】自定義滾動條Flutter
- JavaScript html標籤轉義為實體字元JavaScriptHTML字元
- Appium 實戰練習一APP
- Etcd 實戰練習(一)
- Etcd 實戰練習(二)
- HTML簡介,結構,標籤以及標籤語義HTML
- Spring Boot GraphQL 實戰 02_增刪改查和自定義標量Spring Boot