1.jspåjsçåºå«ã
2.taglibs-standard-jstlel-1.2.5 å
å«jstl å standard 两个å
å
3.spring国际化配置?
4.JSTLåELçåºå«
5.java.lang.Error问题怎样解决?
6.如何查看JSTL源代码压缩包中自带的源码TLD文件
jspåjsçåºå«ã
JSPä¸JavaScriptï¼JavaScriptç缩åå°±æ¯jsï¼ä¹é´çä¸äºä¸»è¦åºå«ï¼1ãJava Server Pagesæ¯ä¸ç§å¨æç½é¡µææ¯ï¼èJavaScriptæ¯ä¸ç§èæ¬è¯è¨ï¼å¯ä»¥ä½¿éæHTMLå 容
æ为å¨æã
2ãJava Server Pageså ·æå¨HTMLä¹é´æ·»å Java代ç çscriptletï¼èJavaScriptå ·æ许å¤å ç½®
å½æ°ï¼å¯ä»¥ä½¿ç¨åºäºé¢å对象ç¼ç¨æ¨¡åä¸åºäºåå模å¼ç继æ¿çJavaScript对象æ¥ä¿®æ¹æ°æ®ã
3ãJava Server Pageså ·æJSTLæ¯æ以å¤çä¸äºå¤æçåè½ï¼èJavaScriptå ·æä¸åçæ°æ®ç±»
åï¼å¦Booleanï¼Numberï¼Stringï¼Dateï¼Mathï¼HTML DOMåRegExpçï¼
4ãJava Server Pageså ä¹æ¯æææWebæµè§å¨ï¼èJavaScriptä¸æ¯æè·¨æµè§å¨åè½ï¼å¯¼è´å¨
æµè§å¨æ´æ¹æé´æ§è¡å°éåè½ç失败导è´ä¸å©ã
5ãJava Server Pageså°éè¿Webæå¡å¨ä»å端åç°åæä¾ï¼èJavaScriptæ¯ä¸ç§èæ¬è¯è¨ï¼
å¯ä»¥å¨å®¢æ·ç«¯åæå¡å¨ç«¯ä½¿ç¨ï¼æè å¨æµè§å¨ç«¯æ客æ·ç«¯ä½¿ç¨ï¼å ¶ä¸ä»£ç å°ç±å é¨ç¼è¯ã
JavaScriptå ç½®ç¼è¯å¨ç§°ä¸ºJITç¼è¯å¨ï¼ç¶åå®å°å¨æµè§å¨ä¸è§£éï¼æ¨¡åçæ§è¡ç¨åå¨å®¢æ·ç«¯ç¯
å¢ï¼å³æµè§å¨ï¼ä¸åçã
6ãJava Server Pageså ·æJSRè§èï¼è¿æ¯Oracleçæ åï¼èJavaScriptå ·æææ°æ åï¼ç§°ä¸º
ES 9ï¼ECMAScriptæ åï¼ï¼æ¯æå ¶ç¼ç¨æ¨¡åä¸çé«çº§åè½æ¹é¢åå 个é«é¶å½æ°ã
7ãJava Server Pageså¨å¼åå¤æåè½æ¹é¢åå¨å±éæ§ï¼èJavaScriptæä¸ä¸ªæ åè§èï¼å¯ä»¥
使ç¨JS强大çå½æ°ç¼ç¨æ¹é¢æ¥æä½å¤æ模åã
8ãJava Server Pageså¨Web容å¨ä¸å ·æJSPéå¼å¯¹è±¡åè½ï¼èJavaScriptå ·æå¯éè¿ä½¿ç¨let
å ³é®åå¨ES 6æ åä¸ä½¿ç¨çæååè½ã
9ãJava Server Pagesæ¯æ表达å¼è¯è¨ï¼ELï¼ï¼å®æä¾å¯¹Java对象ä¸çå½æ°åæ°æ®ç访é®ï¼è
JavaScriptå ·æéå¼ååå¼ç¨ï¼ç¨äºå¼ç¨JS对象ä¸çæ°æ®ã
ãJava Server PagesæJSPç¼è¯å¨ï¼å®å°JSP转æ¢ä¸ºServletæ¥è§£éç½é¡µå 容åæ¾ç¤ºï¼è
JavaScriptæJavascript解éå¨æ¥è§£æ称为Javascriptå¼æç代ç ã
æ©å±èµæï¼
JavaScriptçä¼ç¹
1ãé度ã客æ·ç«¯JavaScripté常快ï¼å 为å®å¯ä»¥å¨å®¢æ·ç«¯æµè§å¨ä¸ç«å³è¿è¡ãé¤ééè¦å¤é¨èµ
æºï¼å¦åJavaScriptä¸ä¼åå°å端æå¡å¨çç½ç»è°ç¨çé»ç¢ãå®ä¹æ²¡æå¿ è¦å¨å®¢æ·ç«¯ç¼è¯ï¼è¿
ç»äºå®ä¸å®çé度ä¼å¿ï¼æäºï¼å¢å ä¸äºé£é©åå³äºæå¼å代ç çè´¨éï¼ã
2ãç®åãJavaScriptçå¦ä¹ åå®ç°ç¸å¯¹ç®åã
3ã人æ°ãJavaScriptå¨Webä¸éå¤å¯ç¨ãå¦ä¹ JavaScriptçèµæºå¾å¤ãStackOverflowå
GitHubæ许å¤ä½¿ç¨Javascriptç项ç®ï¼å¹¶ä¸è¯è¨ä½ä¸ºä¸ä¸ªæ´ä½è¿å¹´æ¥å¨ä¸çè·å¾äºå¾å¤§çå ³
注ï¼å°¤å ¶æ¯ã
4ãäºæä½æ§ãJavaScriptå¯ä»¥å¾å¥½å°ä¸å ¶ä»è¯è¨ä¸èµ·ä½¿ç¨ï¼å¹¶ä¸å¯ä»¥å¨åç§åæ ·çåºç¨ç¨åºä¸
使ç¨ãä¸PHPæSSIèæ¬ä¸åï¼JavaScriptå¯ä»¥æå ¥ä»»ä½ç½é¡µï¼æ 论æ件æ©å±åå¦ä½ã
JavaScriptä¹å¯ä»¥å¨ç¨å ¶ä»è¯è¨ç¼åçèæ¬ä¸ä½¿ç¨ï¼ä¾å¦PerlåPHPã
5ãæå¡å¨è´è½½ã客æ·ç«¯åå°äºå¯¹ç½ç«æå¡å¨çéæ±ã
6ã丰å¯çæ¥å£ãææ¾ç»ä»¶ææ»åå¯ä¸ºæ¨çç½ç«æä¾ä¸°å¯ççé¢ã
7ãæ©å±åè½ãåGreasemonkeyè¿æ ·ç第ä¸æ¹éå ç»ä»¶ä½¿JavaScriptå¼å人åè½å¤ç¼åå¯ä»¥å¨
æéç½é¡µä¸æ§è¡ä»¥æ©å±å ¶åè½çJavaScript代ç ç段ã
8ãå¤åè½æ§ãå¦ä»ï¼æ许å¤æ¹æ³å¯ä»¥éè¿Node.jsæå¡å¨ä½¿ç¨JavaScriptãå¦ææ¨ä½¿ç¨
Expresså¼å¯¼node.jsï¼ä½¿ç¨åmongodbè¿æ ·çææ¡£æ°æ®åºï¼å¹¶å¨å端为客æ·ç«¯ä½¿ç¨
JavaScriptï¼åå¯ä»¥ä» 使ç¨JavaScriptä»åå°åå¼åæ´ä¸ªJavaScriptåºç¨ç¨åºã
taglibs-standard-jstlel-1.2.5 å å«jstl å standard 两个å å
JSTLï¼JSP Standard Tag Libraryï¼JSPæ åæ ç¾åº)æ¯ä¸ä¸ªä¸æå®åçå¼æ¾æºä»£ç çJSPæ ç¾åºï¼æ¯ç±apacheçjakartaå°ç»æ¥ç»´æ¤çãJSTLåªè½è¿è¡å¨æ¯æJSP1.2åServlet2.3è§èç容å¨ä¸ï¼å¦tomcat 4.xãå¨JSP 2.0ä¸ä¹æ¯ä½ä¸ºæ åæ¯æçã
spring国际化配置?
如何实现SpringMVCin国际化,动态设置默认语言
1.在spring配置文件中配置资源文件properties的源码位置及公共名,下列配置指定的源码properties文件处于src目录下的resources文件夹中,名字为message_info_*.properties。源码
beanid="messageSource"class="org.springframework.context.support.ResourceBundleMessageSource"
propertyname="basenames"
list
valueresources/message_info/value
/list
/property
propertyname="useCodeAsDefaultMessage"value="true"/!--
Setwhethertousethemessagecodeasdefaultmessageinsteadof
throwingaNoSuchMessageException.Usefulfordevelopment
anddebugging.--
/bean
2.在spring配置文件中配置基于session的源码处理,将提交上来的源码制作冰墩墩头像源码locale参数进行处理,下列代码默认加载的源码语言是中文简体拦咐。
beanid="localeResolver"class="org.springframework.web.servlet.in.SessionLocaleResolver"
propertyname="defaultLocale"value="zh_CN"/property
/bean
3.在spring配置文件中的源码controller内配置相应的拦截器。
beanid="className"
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"
propertyname="interceptors"
list
beanclass="org.springframework.web.servlet.in.LocaleChangeInterceptor"/
/list
/property
/bean
4.相应的源码properties文件内写入对应的语言,配置文件的源码语言信息以keyvalue的形式进行存储。
5.利用jstl的源码fmt标签库进行相应数据的国际化。
1)导入相应的源码fmt标签库%@taglibprefix="fmt"uri=""%
2)需要国肆衡羡际化处写入fmt:messagekey="title"/fmt:message标签,此处将显示相应properties文件中名为title的源码信息。
3)页面上写成三个连接用于控制国际化的源码转换
ahref="/CloudPortal/staff/goindex.do?locale=zh_CN"裂拍Chinese/a//message_info_zh_CN.properties
ahref="/CloudPortal/staff/goindex.do?locale=en_US"English/a//message_info_en_US.properties
ahref="/CloudPortal/staff/goindex.do?locale=zh_TW"Chinese(TW)/a//message_info_zh_TW.properties
locale内部固定的参数用于判断读取请求的配置文件。
-------------------------------------------------------------
分割线----------------by
zhang------------------------------------------------------------------------------------------------------
springmvc如何实现国际化
1.springmvc实现国际化有多种方式(自行百度)。源码eventbus 3.0源码
几种方式无非就是配置国际化方式和读取国际化资源文件从而实现国际化,下面本文介绍基于session的国际化配置,感觉配置比较方便快捷一些。
(1).首先配置配置国际化在spring-servlet.xml,即springmvc的配置文件中(xxx-servlet.xml)。
!--springmvc国际化配置(基于Session的国际化配置方式)--
beanid="localeResolver"
class="org.springframework.web.servlet.in.SessionLocaleResolver"
/bean
beanid="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
propertyname="fallbackToSystemLocale"
valuefalse/value
/property
propertyname="basename"value="/WEB-INF/in/resources/messages"/
/bean
(2)在WEB-INF文件夹下按照
[html]viewplaincopy
/WEB-INF/in/resources/messages
配置新建文件夹,在文件夹里面新建配置文件
messages_zh_CN.properties(中文国际化资源文件),messages.properties(英文国际化资源文件)国际化资源文件。
到此配置完毕。
注:springmvc的国际化必须要经过控制器Controller才能生效。
2.如何在jsp页面读取国际化
(1)引入spring:message/标签如:spring:messagekey=''user.manage.role/
或者
(2)引入fmt:message/标签例如fmt:messagekey='user.manage.role'/,其中user.manage,role在messages_zh_CN.properties中配置为:user.manage.role=\uD2\u,在messages.properties中配置为user.manage.role=Role,即可。
SpringBoot如何配置和引用国际化资源第一种将资源文件放在源码里面:
那么配置文件信息如下:
!--读取国际化资源文件==资源文件在包里面,路径写全包名--
beanid="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource"
propertyname="basenames"
list
valuecn/ddx/in/messages/value
/list
/property
/bean
第二种配置文件在WEB-INF下面自己创建的库存统计源码目录下面:
那么配置文件信息如下:
!--读取国际化资源乱信文件==资源文件在WEB-INF下面,可以配置多个--
beanid="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
propertyname="basenames"
list
value/WEB-INF/lang/messages/value
/list
/property
/bean
需要注意的是两者配置的class不同
配置文件路径中的“祥李messages”为资源文件名称中_en_US.properties的前面部分,可谨陪迟以自定义。
javaEEWeb项目Spring的国际化异常Nomessagefound
我也喊猛遇到这个问题了。现在已经解决
解决方法:
application.properties增没渗袜加配置:如枯激下:
login是你的文件的名字
#国际化配置
spring.messages.basename=in/login
#-1noexpried
spring.messages.cache-seconds=-1
spring.messages.encoding=UTF-8
SpringBoot国际化(jsp)原来的项目用的是jsp,改成html太麻烦,这里介绍一辩弊下jsp国际化的(如果仿灶物是html使用thymeleaf,它自带了的)备液:
1.项目路径如图:
2.相关依赖:
3.新增InConfig(设置默认语言)
4.新增LocaleResolver(修改local的值)文件
5.application.yml文件
6.新建messages.properties,messages_zh.properties,messages_en.properties个文件:
7.index.jsp
效果:
spring配置国际化porperties文件怎么取数据一般来说。我们会将一些配置的信息放在。properties文件中。
然后使用${ }将配置文件中的信息读取至搭卖spring的配置文件。
那么我们知腊逗如何在spring读取properties文件呢。
1.首先。我们要先在spring配置文件中。vr 展厅 源码定义一个专门读取properties文件的类.
例:
beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
propertyname="locations"
list
valueclasspath*:jdbc.properties/value
!--要是有多个配置文件,只需在这里继续添加即可--
/list
/property
/bean
这里为什么用locations(还有一个location)
是因为。一般来说。我们的项目里面。配置文件可能存在多个。
就算是只有一个。那将来新添加的话。只需在下面再加一个value标签即可。
而不必再重新改动太多。(当然。性能上是否有影响,这个以当前这种服务器的配置来说。是基科可以忽略不计的)。
然后我们就可以在jdbc.properties文件中填写具体的agiso发卡源码配置信息了。
!--配置C3P0数据源--
beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"
propertyname="driverClass"
value${ jdbc.driverClassName}/value
/property
propertyname="jdbcUrl"
value${ jdbc.url}/value
/property
propertyname="user"
value${ jdbc.username}/value
/property
propertyname="password"
value${ jdbc.password}/value
/property
/bean
jdbc.properties文件写的信息。
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:/test
jdbc.username=root
jdbc.password=root
附加一个列子:
beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
propertyname="locations"
list
valuefile:/data/pc-config/passport.properties/value
valueclasspath:memcached.properties/value
/list
/property
/bean
classpath:是指的当前类文件的目录下。
file:在局仿window下是指的当前分区(比如你的项目是放在d盘,则是在d:/data/pc-config/passport.properties)
在linux下,则是当前路径下的文件/data/pc-config/passport.properties
springboot国际化(前后端分离情况)spring.messages.basename=messages/messages
其中ifelse部分可以省略,看前端传的情况,前端如果传乱态正送header中的Accept-Language是en,zh,ja这样的简写,就需要补全,如果前端传过来的就是en-US,zh-CN,这样的就不需要if,else转换。
当然也可以不用messageSource用ResourceBundle?:
messages.properties中的是默认的,如果语言取不到就取默认的。
messages_zh_CN.properties是中文的配哗悔置:
messages_en_US.properties是英文配置:
比如切换语言的多选框:
具体方法:
则jquery调用可以是这样:
其中headers:{ 'Accept-Language':localStorage.getItem('lang')||'en'},这个就是根据你切换的语言,传给服务端对应的语言,这样闭耐就做到前后端同步。
JSTLåELçåºå«
JSTLæ¯ä¸ä¸ªä¸æå®åçå¼æ¾æºä»£ç ï¼ELåªæ¯ä¸ä¸ªè¡¨è¾¾å¼ãJSTLç®ä»ï¼
JSP æ åæ ç¾åºï¼JSP Standard Tag Libraryï¼JSTLï¼æ¯ä¸ä¸ªå®ç° Webåºç¨ç¨åºä¸å¸¸è§çéç¨åè½çå®å¶æ è®°åºéï¼è¿äºåè½å æ¬è¿ä»£åæ¡ä»¶å¤æãæ°æ®ç®¡çæ ¼å¼åãXML æä½ä»¥åæ°æ®åºè®¿é®ã
å¨ developerWorks ä¸å ¶æ°ç³»åç第ä¸ç¯æç« ä¸ï¼è½¯ä»¶å·¥ç¨å¸Mark Kolb åæ¨å±ç¤ºäºå¦ä½ä½¿ç¨ JSTL æ è®°æ¥é¿å å¨ JSP 页é¢ä¸ä½¿ç¨èæ¬ç¼å¶å ç´ ãæ¨è¿å°äºè§£å¦ä½éè¿ä»è¡¨ç¤ºå±å é¤æºä»£ç æ¥ç®å软件维æ¤ãæåï¼æ¨å°äºè§£ JSTL ç»è¿ç®åç表达å¼è¯è¨ï¼å®å 许å¨ä¸å¿ 使ç¨åè½é½å ¨çç¼ç¨è¯è¨çæ åµä¸å¯¹ JSTL æä½æå®å¨æå±æ§å¼ã
JavaServer Pagesï¼JSPï¼æ¯ç¨äº J2EE å¹³å°çæ å表示å±ææ¯ãJSP ææ¯æä¾äºç¨äºæ§è¡è®¡ç®ï¼è¿äºè®¡ç®ç¨æ¥å¨æå°çæ页é¢å 容ï¼çèæ¬ç¼å¶å ç´ åæä½ãèæ¬ç¼å¶å ç´ å è®¸å¨ JSP 页é¢ä¸å æ¬ç¨åºæºä»£ç ï¼å¨ä¸ºååºç¨æ·è¯·æ±èåç°é¡µé¢æ¶å¯ä»¥æ§è¡è¿äºæºä»£ç ã
æä½å°è®¡ç®æä½å°è£ å°å¾è±¡ HTML æ XML æ è®°çæ è®°ä¸ï¼JSP 页é¢ç模æ¿ææ¬é常å å«è¿äºæ è®°ãJSP è§èåªå°å ç§æä½å®ä¹æäºæ åï¼ä½ä» JSP 1.1 å¼å§ï¼å¼å人åå·²ç»è½å¤ä»¥å®å¶æ è®°åºçæ¹å¼åå»ºå ¶èªå·±çæä½äºã
JSP æ åæ è®°åºï¼JSTLï¼æ¯ JSP 1.2 å®å¶æ è®°åºéï¼è¿äºæ è®°åºå®ç°å¤§éæå¡å¨ç«¯ Javaåºç¨ç¨åºå¸¸ç¨çåºæ¬åè½ãéè¿ä¸ºå ¸å表示å±ä»»å¡ï¼å¦æ°æ®æ ¼å¼ååè¿ä»£ææ¡ä»¶å 容ï¼æä¾æ åå®ç°ï¼JSTL 使 JSP ä½è å¯ä»¥ä¸æ³¨äºç¹å®äºåºç¨ç¨åºçå¼åéæ±ï¼èä¸æ¯ä¸ºè¿äºéç¨æä½âå¦èµ·çç¶âã
å½ç¶ï¼æ¨å¯ä»¥ä½¿ç¨ JSP èæ¬ç¼å¶å ç´ ï¼scriptletã表达å¼å声æï¼æ¥å®ç°æ¤ç±»ä»»å¡ãä¾å¦ï¼å¯ä»¥ä½¿ç¨ä¸ä¸ª scriptlet å®ç°æ¡ä»¶å 容ï¼æ¸ å 1 ä¸çéæ¾ç¤ºäºè¿ä¸ä¸ª scriptletãä½æ¯ï¼å 为èæ¬ç¼å¶å ç´ ä¾èµäºå¨é¡µé¢ä¸åµå ¥ç¨åºæºä»£ç ï¼éå¸¸æ¯ Java 代ç ï¼ã
æ以对äºä½¿ç¨è¿äºèæ¬ç¼å¶å ç´ ç JSP 页é¢ï¼å ¶è½¯ä»¶ç»´æ¤ä»»å¡çå¤æ度大大å¢å äºãä¾å¦ï¼æ¸ å 1 ä¸ç scriptlet 示ä¾ä¸¥æ ¼å°ä¾èµäºè±æ¬å·çæ£ç¡®å¹é ãå¦æä¸ç»æé´å¼å ¥äºä¸ä¸ªè¯æ³é误ï¼åæ¡ä»¶å 容ä¸çåµå¥å ¶å® scriptletå¯è½ä¼é æ严éç ´åï¼å¹¶ä¸å¨ JSP容å¨ç¼è¯è¯¥é¡µé¢æ¶ï¼è¦ä½¿æ产ççé误信æ¯ææä¹å¯è½ä¼å¾å°é¾ã
ELç®ä»ï¼
ELï¼Expression Languageï¼ æ¯ä¸ºäºä½¿JSPåèµ·æ¥æ´å ç®åã表达å¼è¯è¨ççµææ¥èªäº ECMAScript å XPath 表达å¼è¯è¨ï¼å®æä¾äºå¨ JSP ä¸ç®å表达å¼çæ¹æ³ï¼è®©Jspç代ç æ´å ç®åã
注æå½è¡¨è¾¾å¼æ ¹æ®å称å¼ç¨è¿äºå¯¹è±¡ä¹ä¸æ¶ï¼è¿åçæ¯ç¸åºç对象èä¸æ¯ç¸åºçå±æ§ãä¾å¦ï¼å³ä½¿ç°æç pageContext å±æ§å å«æäºå ¶ä»å¼ï¼${ pageContext} ä¹è¿å PageContext 对象ã
注æ <%@ page isELIgnored="true" %> 表示æ¯å¦ç¦ç¨ELè¯è¨,TRUE表示ç¦æ¢.FALSE表示ä¸ç¦æ¢.JSP2.0ä¸é»è®¤çå¯ç¨ELè¯è¨ã
java.lang.Error问题怎样解决?
这是引入类型失败的错误提示,import org.wltea ,
说明你引入了某个jar 包或者类,但是没有找到 ,就报错了.
IK analyzer 中文分词器 开源的项目 ,有源码的.
把这个下载好就可以了。
一般有两种常见的情况:
1、当一个 jar 文件的 MANIFEST.MF 中已经标记了 Sealed: true 时,这个 jar 内所有的 java package 中的类必须来自这个 jar 包,这是 JVM 的安全措施,配合数字签名就能防止篡改,微软就把它的 SQLServer 驱动程序签名了。比如,JRE 的 rt.jar 就是 Sealed,所以你自己创建一个类 java.lang.MyClass 来运行的话,JVM 是拒绝的。
通常情况下,如果你使用了基于动态代理的 AOP,比如 Hibernate 延迟加载或 Spring 的 AOP 就可能因为临时生成的一个子类本身生成在内存中而不是来自某个 jar 包,这时如果这个 jar 包是 Sealed 就无法工作,比如 Microsoft SQLServer JDBC 驱动程序在 Sealed 时你用 Hibernate 的延迟加载就会出错,因为 Hibernate 生成的代理类继承了某个 JDBC 驱动包内的类但这个驱动包是 Sealed,生成的类的包名在驱动名的 jar 中就会出错。
2、可能是类版本错误。这个错误是你说你当前的某个类它引用到的其它类库的版本与这个类在编译时所用的版本不相同 ,比如:你的类 A 用了 c_1.0.jar 中的某个类,编译之后拿到服务器上去用,但服务器上的只有 c_1.1.jar 这个类,它的版本与 c_1.0.jar 某个用到的类略有差异。
因此在 J2EE 开发中确保我们编译时针对 API 或接口编程,不要针对实现类编程,否则不同的版本对你有很大影响,你必须在所有可能用到的服务器上针对性地测试才能发现问题。
如果你是使用类似 Eclipse 的开发工具,那么当你要用到 jstl.jar , jsp.jar, servlet.jar , j2ee.jar 等服务器提供的 API 时,我们不应该把服务器上的 jar 复制到 WEB-INF/lib 下,而是应该在 Eclipse 的项目属性的 Java Build Path 中 Add Library > Server Runtime 或 User Library 来避免复制 jar。一旦复制了之后其它人在服务器配置变更后可能不知道你的类库和服务器的类库有什么差异。
如何查看JSTL源代码压缩包中自带的TLD文件
学习JSTL标准标签时,可借助源代码自带的TLD文件(tag library descriptor,标签库描述文件)辅助学习,既可以查看这些标准标签是如何定义、如何描述的,也有利于养成良好的编码习惯。
目前JSTL的最新版本为1.2.5版,在官网下载好源代码压缩包后,拷贝到一个文件夹下,如F盘的test文件夹下。
在搜索框直接查找*.tld,如果没勾选在压缩包中搜索,将显示不出结果,如图1所示。此时需要在搜索-高级选项下勾选压缩的文件夹,如图2所示
勾选后,即可正常显示搜索到的结果。
要手动追踪某个tld文件的位置,也可以选中该文件后右键选择打开文件所在位置,查看文件路径。本例中路径为:F:\test\taglibs-standard-1.2.5-source-release.zip\taglibs-standard-1.2.5\impl\src\main\resources\META-INF
后面的步骤就简单了,解压对应的TLD文件,用Eclipse等软件打开。