第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

實(shí)戰(zhàn)練習(xí)之Jsp自定義標(biāo)簽

標(biāo)簽:
Java

实现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("<h1>尊敬的用户 "+user.getUserName()+"您好!</h1>"); 

        }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


<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">

    <description>UUM JSP Form Tag Library</description>
    <tlib-version>1.0</tlib-version>
    <short-name>form</short-name>
    <uri>uum</uri><!-- 可以自定义  -->

        <tag>
        <name>userTag</name><!-- 标签名称  -->
        <tag-class>org.springboot.tag.UserInfoTag</tag-class><!-- 实现方法的位置  -->
        <body-content>empty</body-content>
        <attribute>
            <name>user</name><!-- 入参名称  -->
            <required>false</required><!-- 该入参是否必须  -->
            <rtexprvalue>true</rtexprvalue>
        </attribute>  
        </tag> 
</taglib>

引用自定义标签的jsp文件 ,userTag.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="uum" uri="uum" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>自定义标签</title>
</head>
<body>

<uum:userTag user="${user}"   />  <!-- 变量名称和变量类型要和标签的实现方法中匹配 --> 
</body>
</html>

自定义标签的展示过程可以理解为,当浏览器解读该JSP页面时,到引用自定义标签的地方会根据标签的uri和标签名找到对应在tld中的实现方法,执行自定义标签的实现方法,就会看到最后的结果。
一般的WEB项目可以直接访问引用的jsp页面就可以看到效果,即http://localhost:8080/userTag.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;
    } 
}

浏览器输入http://localhost:8080/sayHello ,效果如下:
图片描述

點(diǎn)擊查看更多內(nèi)容
5人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消