自定义 标签

自定义JSP标签库实现

 

 

usertag.tld

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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 web-jsptaglibrary_2_0.xsd">

<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>baoyou</short-name>
<uri>/usertag</uri>
<tag>
    <name>userinfo</name>
    <tag-class>com.baoyou.test.autotag.UserTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
        <name>user</name>
         <required>false</required>
         <rtexprvalue>true</rtexprvalue>
    </attribute>
 </tag>
</taglib>

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:javaee="http://java.sun.com/xml/ns/javaee"
	xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	id="WebApp_9" version="2.4">
	 
	 
   <jsp-config> 
     <taglib> 
        <taglib-uri>/usertag</taglib-uri> 
        <taglib-location>/WEB-INF/usertag.tld</taglib-location> 
     </taglib> 
   </jsp-config>
	 
</web-app>

 

public class User {

	private int userId;
	private String username;
	private String password;
	
	public int getUserId() {
		return userId;
	}
	public void setUserId(int userId) {
		this.userId = userId;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	 
}

 

package com.baoyou.test.autotag;
 

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class UserTag extends TagSupport{
 
	private static final long serialVersionUID = 1L;
	
	private User user;
	 
	@Override
	public int doStartTag() throws JspException { 
		 JspWriter out = this.pageContext.getOut();
		 try{
		 if (user == null) { 
				out.println("No UserInfo Found...");
		 }
		 out.println("<table width='500px' border='1' align='center'>");
         out.println("<tr>");
         out.println("<td width='20%'>userid:</td>");
         out.println("<td>" + user.getUserId() + "</td>");
         out.println("</tr>");
         out.println("<tr>");
         out.println("<td>username:</td>");
         out.println("<td>" + user.getUsername() + "</td>");
         out.println("</tr>");
         out.println("<tr>");
         out.println("<td>password:</td>");
         out.println("<td>" + user.getPassword() + "</td>");
         out.println("</tr>");
         out.println("</table>");
		 }catch(Exception e){
			 throw  new JspException(e.getMessage());
		 }
		return SKIP_BODY;
	}
	
	@Override
	public int doEndTag() throws JspException { 
		 return EVAL_PAGE;
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
}

 

<%@ page language="java" import="java.util.*,com.baoyou.test.autotag.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="/usertag" prefix="baoyou"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>My JSP 'index.jsp' starting page</title> 
  </head> 
  <body>
  <% User user = new User(); 
 	 user.setUserId(1);
 	 user.setUsername("baoyou");
 	 user.setPassword("baoyou"); 
     pageContext.setAttribute("userinfo", user);      %>
   <baoyou:userinfo user="${pageScope.userinfo }" />
  </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

MATLAB主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性内容概要:本文主要介绍了一种在MATLAB环境下实现的主动噪声和振动控制算法,该算法针对较大的次级路径变化具有较强的鲁棒性。文中详细阐述了算法的设计原理与实现方法,重点解决了传统控制系统中因次级路径动态变化导致性能下降的问题。通过引入自适应机制和鲁棒控制策略,提升了系统在复杂环境下的稳定性和控制精度,适用于需要高精度噪声与振动抑制的实际工程场景。此外,文档还列举了多个MATLAB仿真实例及相关科研技术服务内容,涵盖信号处理、智能优化、机器学习等多个交叉领域。; 适合人群:具备一定MATLAB编程基础和控制系统理论知识的科研人员及工程技术人员,尤其适合从事噪声与振动控制、信号处理、自动化等相关领域的研究生和工程师。; 使用场景及目标:①应用于汽车、航空航天、精密仪器等对噪声和振动敏感的工业领域;②用于提升现有主动控制系统对参数变化的适应能力;③为相关科研项目提供算法验证与仿真平台支持; 阅读建议:建议读者结合提供的MATLAB代码进行仿真实验,深入理解算法在不同次级路径条件下的响应特性,并可通过调整控制参数进一步探究其鲁棒性边界。同时可参考文档中列出的相关技术案例拓展应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值