介绍JSTL与EL就不能不介绍一下JSP的标准动作元素。 JSP的标准动作元素: <jsp:useBean>使用javabean的元素 <jsp:getProperty>从一个JavaBean组件取得一个性质值,并将其增加到响应中去 <jsp:setProperty>设置一个JavaBean的属性值 <jsp:include>在请求处理阶段包含来自一个Servlet或JSP页面的响应 <jsp:forward>将某个请求的处理转发到一个Servlet或JSP页面 <jsp:param>对使用<jsp:include>或<jsp:forward>传递到另一个Servlet或JSP页面的请求增加一个参数值 <jsp:plugin> <jsp:attribute>基于此元素的体设置动作属性的值 <jsp:body>基于此元素的体设置动作元素体。当动作元素包含<jsp:attribute>动作元素时,<jsp:body>则是必要的 <jsp:element>动态生成一个XML元素,可以通过嵌套的<jsp:attribute>和<jsp:body>动作定义属性和体 <jsp:text>用于封装需要原样使用的模板文本,通常 仅在编写为XML文档的JSP页面中需要。 JSTL 是JSP标准标记库(JSP Standard Tag Library,JSTL),EL是表达式语言(Expression Language,EL)。这是JSP的一部分,虽然有时与JSP的动作元素的功能相同,但每种元素的存在都有一定的用处,只是用的地方并不相同。 EL语言的操作符: . 访问一个bean性质或Map项 [] 请问一个数组或List元素 () 括起一个子表达式,以改变计算顺序 ?: 条件测试:condition ? ifTrue:ifFalse empty 空变量测试(null,空String,或者任何不含元素的数组,Map或Collection) func(arg)函数调用,在此func为函数名,arg是一个函数参数 隐式EL变量 PageScope:所有页面作用域变量的集合(java.util.Map) requestScope:所有请求作用域变量的集合(java.util.Map) sessionScope: applicationScope: Param:所有请求参数值的集合(java.util.Map),每个参数对应为一个String值。 ParamValues:所有请求参数值的集合(java.util.Map),每个参数对应为一个String值。 Header:所有请求首部值的集合(java.util.Map),每个参数对应为一个String值。 HeaderValues:所有请求首部值的集合(java.util.Map),每个参数对应为一个String值。 Cookie:所有请求Cookie值的集合(java.util.Map),每个cookie对应为一个javax.servlet.http.Cookie值 InitParam:所有应用初始化参数值的集合(java.util.Map),每个参数对应为一个String值。 PageContext:javax.servlet.jsp.PageContext类的一个实例,提供了对各种请求数据的访问。 用JSP/JSTL/EL访问JAVABEAN 在JSP页面中声明BEAN并获取BEAN存储的信息 <jsp:useBean id="cartoon" scope="page" class="com.ora....CartoonBean"> <img src="<jsp:getProperty name="cartoon" property="filename" />"> 要将JSP动作属性设置为由另一个动作所生成的值,必须使用以下<jsp:attribute>动作标准 <jsp:setProperty name="msg" property="category"> <jsp:attribute name="value" trim="true"> <jsp:getProperty name="myBean" property="myProperty"> </jsp:attribute> </jsp:setProperty> 在JSP页面中使用EL表达式处理BEAN <img src="image/${cartoon.fileName}"> 设置BEAN性质 可以使用下面两个动作来设置其值,分别为:<jsp;setProperty>或<c:set> 使用<jsp:setProperty>动作 <jsp:useBean id="msg" class=""></jsp:useBean> <jsp:setProperty name="msg" property="category" value="thoughts" /> <jsp:setProperty name="msg" property="category" value="quotes" /> 使用<c:set>动作 <c:set target="${msg}" property="category" value="thoughts" /> JSP/JSTL/EL处理用户表单的输入与用户页面的输出 使用JSTL动作访问参数值 <input type="text" name="userName"> <input type="checkbox" name="food" value="z"> <input type="checkbox" name="food" value="b"> <input type="checkbox" name="food" value="c"> 打印相关变量值: <c:out value="${param.userName}"> <c:forEach items="${paramValues.food}" var="current"> <c:out value="${current}" /> </c:forEach> ---------------------------------------------------------- JSTL <c:out>的属性 value:必要。增加至响应的值。 escapeXml:Boolean:可选,如果值中的特殊字符应当轮换为字符实体码,则为true,默认为true。 Default:可选,value属性为null时所用的值,也可以由体定义。 ----------------------------------------------------------- JSTL <c:forEach>属性 items:可选,如果指定,则完全循环,否则,就要指定begin和end。 var:可选,保存当前元素值的变量的名 varStatus:可选,保存一个LoopTagStatus对像的变量的名 begin:可选,第一个索引(从0开始) end:可选,最后一个索引(从0开始) step:可选,每次迭代时的索引增量。 ----------------------------------------------------------- 隐式变量pageContext的request性质,可以访问到的属性: authType:保护请求鉴别机制的名字 characterEncoding:(String)请求体字符编码,如果未知则为null。 contentLength:(int)请求体长度,如果未知则为-1。 contentType:(String)请求体MIME类型 contextPath:请求体的上下文路径 cookies:(javax.servlet.http.Cookie[])由客户请求的cookie locale:(java.util.Locale)客户的首选本地化环境 locales:(java.util.Enumeration)所有用户本地化环境的列表,按首选程度排序 method:(String)请求方法 protocol:协议名和版本 remoteAddr:客户IP地址 remoteHost:客户机的主机名,如果未知则显示ip地址 remoteUser:如果页面受到保护,则用于发出请求的用户名,否则为null requestURI:请求URI,例如:/app/page.jsp requestURL:请求URL例如:http://server/app/page.jsp scheme:机制,如http或https servletPath:请求的上下文相对路径:例如/page.jsp servername:服务器名 serverPort:端口 secure:如果在一个安全通道上(ssl)建立请求,则为TRUE。 userPrincipal:(java.security.Principal)如果页面得到保护,则为表示用户建立请求的Principal(主体),否则为null ---------------------------------------------------------------------------------------- 使用bean捕获参数值 <jsp:useBean id="userinfo" class=""> <jsp:setProperty name="userinfo" property="*" /> </jsp:useBean> --------------------------------------------------------------------------------------- |
JSTL与EL的基本介绍
最新推荐文章于 2021-06-08 09:16:36 发布