`

jstl 扩展 标签 应用到cms

 
阅读更多

 

昨天看了篇文章主要把baidu与腾讯2家公司的程序员基于其所处的环境作了对比。哎,我的工资太少了,只有努力写出更强劲,更迅速的代码,提高技术。

看了之后收获专业的程序员都要养成写日志的习惯。总结问题,记录下来。(以前写的程序过段时间就忘了这个确实有用)自己学会了总结一下,方便后面的程序员能够少走弯路迅速掌握。

心胸宽阔些:中国的软件行业,发展并不很理想,中国还需要更努力,中国的软件也需要后面的人努力提高技术。看网上的东西都是外国人开发的,不爽。我也希望其它的程序员能够开放些学习心得,让我迅速掌握些新知识。

 

一共分为2个步骤(前提是下载jar包2个:jstl-1.2.jar与standard.jar)

 

第一步:创建扩展应用 

 

 

package baidu.tag;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyTagSupport;
/**
 * 快速建站 插件 之"新闻"内容管理
 * @author kettas
 * 上午11:01:07
 */
public class NewsTag extends BodyTagSupport {
	// ######## SQL #############
	protected String sql;
	protected Object runObjects[];
	protected Object value; // tag attribute
	protected boolean valueSpecified = true; // status
	protected Object target; // tag attribute
	protected String property; // tag attribute
	private String var; // tag attribute
	private int scope; // tag attribute
	private boolean scopeSpecified; // status

	public NewsTag() {
		super();
		init();
	}

	private void init() {
		value = var = null;
		scopeSpecified = valueSpecified = false;
		scope = PageContext.PAGE_SCOPE;
	}

	public void release() {
		super.release();
		init();
	}
	/**List 可通过其它方法产生出来,当然举一反三你可以写出更多更好用的插件*/
	public int doEndTag() throws JspException {
		List<Map<String, String>> list = new ArrayList<Map<String, String>>();
		for (int i = 0; i < 10; i++) {
			Map<String, String> map = new HashMap<String, String>();
			map.put("resource_name", "name" + i);
			map.put("resource_id", "id" + i);
			list.add(map);
		}
		value=list;
		pageContext.setAttribute(var,value, scope);
		return EVAL_PAGE;
	}
}
 

 

 

第二步:配置文件:要配置2个(/WEB-INF/tag.tld及/WEB-INF/web.xml)

 

 

<?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"
 xmlns:shcemalocation="http://java.sun.com/xml/ns/j2ee 
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<description>自定义标签</description>
 <display-name>JSTL core</display-name>
 <tlib-version>1.1</tlib-version>
 <short-name>firstLabel</short-name>
 <uri>http://java.sun.com/jsp/jstl/core</uri>
  <tag>
  <description>
        Sets the result of an expression evaluation in a 'scope'
    </description>
    <name>news</name>
    <tag-class>baidu.NewsTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <description>
Name of the exported scoped variable to hold the value
specified in the action. The type of the scoped variable is
whatever type the value expression evaluates to.
        </description>
        <name>var</name>
        <required>false</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
        <description>
Expression to be evaluated.
        </description>
        <name>value</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
        <deferred-value>
	    <type>java.lang.Object</type>
        </deferred-value>
    </attribute>
    <attribute>
        <description>
Target object whose property will be set. Must evaluate to
a JavaBeans object with setter property property, or to a
java.util.Map object.
        </description>
        <name>target</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
        <description>
Name of the property to be set in the target object.
        </description>
        <name>property</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
        <description>
Scope for var.
        </description>
        <name>scope</name>
        <required>false</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
        <description>
Expression to be evaluated.
        </description>
        <name>run</name>
        <required>false</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
 </tag>
</taglib>

 <?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" 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-app_2_4.xsd">
	<display-name>tagWeb</display-name>
	<jsp-config>
 		<taglib>
 		 <taglib-uri>firstTag</taglib-uri>
 		 <taglib-location>/WEB-INF/tag.tld</taglib-location>
 	</taglib>
  
</jsp-config>
</web-app>
 

 

第三步:使用标签

 

<%@page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib uri="firstTag" prefix="C"%>

<html>
<head>
<title>MyJSP'tag.jsp'startingpage</title>
</head>
<body>
<C:news var="list1"  run="select top 5 * from up_resource"></C:news><!-- 扩展的标签用来装载数据 依次原理可实现像国内其它CMS的标签 并且依赖于JSTL变得更强大-->
<c:forEach items="${list1}" var="map" step="1">
map-id: <c:out value="${map.resource_id}" />
Name-name: <c:out value="${map.resource_name}" /><br>
</c:forEach>
</body>
</html>
 

 

 

分享到:
评论

相关推荐

    cms.rar_JSP内容管理_cms_cms jsp_cms系统_htmlencode.java

    【标题】"cms.rar" 提供的是一个基于JSP的内容管理系统(CMS)的实现,主要关注于使用JSP技术和MySQL数据库来构建一个高效且可扩展的CMS平台。在这个系统中,"cms_cms.jsp"可能是核心的管理界面,而...

    javaweb CMS系统.zip

    10. **插件与扩展**:优秀的CMS系统应该具有良好的可扩展性,允许开发者通过插件机制添加新功能或定制化需求。 11. **前端技术**:随着前后端分离趋势的发展,CMS系统的前端可能采用React、Vue或Angular等现代...

    JAVA 开发tot-jsp-cms.zip

    常见的JSTL(JavaServer Pages Standard Tag Library)和Struts2标签库也可以增强系统的可重用性和可扩展性。 六、安全与权限管理 对于企业级CMS,安全性和权限控制是至关重要的。TOT-JSP-CMS可能包含用户认证、...

    jsp /CMS系统

    5. **JSTL(JavaServer Pages Standard Tag Library)**:标准标签库,提供了一系列预定义的标签,如迭代、条件判断等,减少脚本代码的使用。 **CMS系统特点:** 1. **内容管理**:CMS系统通常包含内容创建、编辑、...

    cms新闻发布系统JSP+Servlet,MVC

    在本系统中,JSP主要承担视图层的角色,负责渲染HTML代码,结合EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签库,可以简洁地实现页面逻辑和数据绑定。 **3. Servlet** Servlet是...

    基于Java的Lerx开源网站内容管理系统(CMS.ext).zip

    - **配置与部署**:完成编码后,将项目打包成WAR文件,然后上传到应用服务器的webapps目录下,启动服务器即可。 4. **扩展与定制** - **插件系统**:Lerx CMS拥有丰富的插件库,如广告管理、邮件发送、投票模块等...

    网站内容管理系统(CMS)毕业设计.doc

    MVC(Model-View-Controller)框架在该系统中起到了关键作用,它将应用程序分为三个主要组件:模型(M)、视图(V)和控制器(C)。模型层采用DAO(Data Access Object)模式,负责与数据库的交互,确保数据的存取和...

    基于jsp+jdbc+servlet的个人CMS系统,课程大作业.zip

    【标题】"基于jsp+jdbc+servlet的个人CMS系统,课程大作业.zip"是一个典型的Web应用项目,主要采用Java技术栈构建,包括JSP(JavaServer Pages)、Servlet和JDBC(Java Database Connectivity)。这个项目是一个内容...

    基于Java的源码-Lerx开源网站内容管理系统(CMS.ext).zip

    6. **JSTL和EL表达式**:JSP标准标签库(JSTL)和表达式语言(EL)可以提升JSP页面的可读性和可维护性,避免在页面中嵌入过多的Java代码。 7. **安全机制**:Lerx可能集成了如Spring Security或Apache Shiro等安全...

    java 学些资料

    - **Java在CMS中的应用**:Java的面向服务架构(SOA)和企业级框架(如Spring, Hibernate)使CMS具有良好的扩展性和可维护性。 - **JSP在CMS中的角色**:JSP用于呈现内容,根据用户请求动态生成HTML页面,与后端...

    中帆智能建站系统基础版JSP版

    4. **JSTL(JavaServer Pages Standard Tag Library)**:这是一个标准的标签库,提供了许多用于处理常见任务的标签,如循环、条件判断、XML操作等,降低了JSP页面的复杂性。 5. **Servlet**:JSP最终会被编译成...

    学校实训JSP项目-阳光酒店管理系统(javaapplet+SQL).zip

    这通常是一个教学或实践项目,目的是让学生熟悉Web应用程序的开发流程,特别是涉及到服务器端编程和数据库操作的部分。 【描述】中的内容与标题一致,进一步确认这是一个基于JSP的酒店管理系统项目,可能包含了使用...

    [其他类别]JSP无限级分类目录树_sorttree.zip

    7. **JSTL(JavaServer Pages Standard Tag Library)**:可能用到JSTL标签库,如`&lt;c:forEach&gt;`来循环遍历数据。 通过这些知识点,开发者可以创建一个灵活的、可扩展的分类系统,适应不断变化的网站内容需求。

    JSP源码——jeecms-2012.zip

    4. 模板引擎:Jeecms支持自定义模板,方便进行前端样式定制,同时提供了丰富的标签库供开发者使用。 5. SEO优化:系统内置SEO友好功能,如关键词设置、自定义URL、静态化等,有助于提高搜索引擎排名。 四、应用...

    网站发布系统.

    JSP可以使用内置的动作标签(如`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`)或自定义标签库(如JSTL)来实现页面间的导航和数据传递。 2. 控制层:Servlet在此扮演关键角色,处理HTTP请求,调用业务逻辑,然后将结果返回给...

    JAVA毕业设计外文翻译 中文+英文(JSP技术发展史)

    JSP 2.0 引入了许多新特性,如 JSP 表达式语言 (EL) 和 JSP 标准标签库 (JSTL),这些特性极大地简化了开发者的工作,并提高了开发效率。EL 允许开发者直接在 JSP 页面中访问 JavaBeans 属性,而无需编写复杂的 Java ...

    kindeditor编辑器jsp版

    KindEditor广泛应用于博客系统、论坛、CMS(内容管理系统)、在线问答等Web应用,提供用户方便地编辑和发布富文本内容。 综上所述,KindEditor编辑器是JSP开发中的一个强大工具,它能提供完善的在线文本编辑功能,...

    jeecms-2012.zip

    - **Java基础**:Jeecms-2012基于Java EE平台,利用Servlet、JSP和JSTL等技术实现。 - **MVC模式**:采用Model-View-Controller设计模式,分离业务逻辑、数据处理和视图展示,提高代码可读性和可维护性。 - **...

    jsp+kindeditor html 页面编辑

    集成KindEditor到JSP项目中,首先需要将KindEditor的资源文件(如js、css、images等)部署到服务器的公共目录,然后在JSP页面中通过`&lt;script&gt;`标签引入KindEditor的JavaScript库。接下来,我们需要创建一个div元素...

    Java面试重要知识点复习大纲.pdf

    6. **JSP**:学习隐式对象,掌握EL和JSTL,理解JSP标签的使用。 7. **Cookie/Session**:了解它们的生命周期,以及如何在应用程序中使用。 **三、五大框架** 1. **Struts2**:深入理解Action,值栈的工作原理,对比...

Global site tag (gtag.js) - Google Analytics