首页 > IT职业 > IT图书 > 实战练习之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页面就可以看到效果,即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/ ,如需转载,请注明出处,否则将追究法律责任。