ITPub博客

首页 > IT职业 > IT图书 > 实战练习之Jsp自定义标签

实战练习之Jsp自定义标签

IT图书 作者:farsun 时间:2021-09-09 09:00:07 0 删除 编辑

实现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 Library1.0formuum<!-- 可以自定义  -->userTag<!-- 标签名称  -->org.springboot.tag.UserInfoTag<!-- 实现方法的位置  -->emptyuser<!-- 入参名称  -->false<!-- 该入参是否必须  -->true

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







自定义标签
<!-- 变量名称和变量类型要和标签的实现方法中匹配 -->

自定义标签的展示过程可以理解为,当浏览器解读该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 ,效果如下:
图片描述

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4289/viewspace-2798485/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-26

  • 博文量
    105
  • 访问量
    17168