加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

JSTL 及 tablibs 的简单介绍和配置技巧

发布时间:2021-12-10 13:36:08 所属栏目:PHP教程 来源:互联网
导读:jstl 简介 jstl 的全称就是jsp standard tag libraries, 就是jsp里的标准标签库。 引用jstl技术能在jsp种使用更加强大的标签(tag)。 jstl 里包含多个标准库, 本文主要简单讲讲其中的核心标准库 核心库 主要封装的是一些基本的核心的业务逻辑。 tablibs 这个

jstl 简介
jstl 的全称就是jsp standard tag libraries, 就是jsp里的标准标签库。
引用jstl技术能在jsp种使用更加强大的标签(tag)。
 
jstl 里包含多个标准库, 本文主要简单讲讲其中的核心标准库
 
核心库
主要封装的是一些基本的核心的业务逻辑。
 
tablibs
这个名称一看就知道, 就是指标签库的集合了。
 
Spring mvc里配置 tablibs
maven 设置
当然要在maven里加入两个包, 分别是 jstl 和 standard。
在pom.xml里加入
 
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
 
<dependency>
   <groupId>taglibs</groupId>
   <artifactId>standard</artifactId>
   <version>1.1.2</version>
</dependency>
那么在 WEBINF/lib 里就会加入jstl-1.2.jar 和 standard-1.1.2.jar 这两个包
 
spring-context.xml 配置
现在大部分人使用的viewReslover 都是InternalResoucesViewReslover。
 
在InternalResoucesViewReslover的配置里加上个viewClass的Property
 
<!-- InternalResoucesViewReslover -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  <property name="prefix" value="/WEB-INF/jsp/"></property>
  <property name="suffix" value=".jsp"/>
</bean>
jsp页面配置
只需要在jsp里头部加上
 
下面这句
 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
声明一下核心标签库, 注意这个真是jstl的1个部分, 其余部分参考spring文档。
 
1个例子
这个例子使用了核心tablibs中最常用的 1个
 
我们知道, 如果jsp页面接受1个从后台(controller)传过来的参数的值,一般如下写法法就ok了
 
<input type="hidden" name="showIds" id="showIds" value=${paraId}/>
但是, 如果接受的参数是1个容器(list/map)的话, 单靠jsp就不好处理了。
一般的做法是把容器里元素的遍历用JavaScript写在 jsp页面的初始化event里
 
但是如果使用jstl 标签库, 就能直接在jsp遍历传过来的容器元素哦。
 
controller 传值
package com.home.controller;
 
import java.util.HashMap;
import java.util.Map;
 
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
import com.home.rest.User;
 
@Controller
@RequestMapping("/user")
public class UserRestController {
    private Map<Integer,User> userMap = new HashMap<Integer, User>();
 
    public UserRestController(){
        userMap.put(1, new User(1,"jack","jacky","jack@163.com"));
        userMap.put(2, new User(2,"nick","nicky","nick@163.com"));
        userMap.put(3, new User(3,"jenny","jenny","jenny@163.com"));
        userMap.put(4, new User(4,"bill","billy","bill@163.com"));
    }
 
    @RequestMapping(value="/users", method=RequestMethod.GET)
    public String list(Model model){
        model.addAttribute("users", userMap);
        return "rest/user/users";
    }
 
}
上面的例子利用model传了包含几个User对象的map容器过去。。
 
jsp遍历容器元素
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>User list</title>
</head>
<body>
    <c:forEach items="${users}" var="um">
        -- ${um.value.id}
        -- ${um.value.name}
        -- ${um.value.email}
        <br>
    </c:forEach>
 
</body>
</html>
可以见到我利用 这个标签直接遍历里参数容器。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读