一.Jsp标准动作:
封装了一些有固定功能的java代码
以前jsp中java代码接收传递的值都写在<%%>中
<%
//接收表单传递的值
//将接收到的值封装成user对象
//将user对象存入数据库中
%>
先引入实体类的包:<%@page import="com.neusoft.pojo.user"%>
<jsp:useBean id="" scope="" class="">标签作用:引入类,实例化类,存入作用域
<jsp:useBean id="自己起的命名,实例化user的对象名" scope="实例化好的类想存入的作用域" class="包名.类名">
<jsp:setProperty property="表单接收的值,传给user对象的属性来设置值" name="id的值 " param="表单项的名字,接收表单里的值"/>
<jsp:setProperty property="对哪个属性设置值" name="id的值 " value="变量名字,后台传来的值"/>
</jsp:usebean>
获取对象的值并显示在页面上 :
<jsp:getProperty property="对象的属性" name="id的值"/>+666
得到字符串类型的值,不能做运算
EL表达式:
是JSP中一种简洁的数据访问语言,简化JSP的开发,可以直接做运算${expression+666},EL表达式,使用了get方法,封装了pageContext.findAttrbuite()方法,任何作用域都可以取值,在取的值为空时,可以不显示null ,不会有500错误,取作用域内的值 ,自动类型转换
语法格式:
${expression}
通过作用域对象取值:
eg:
存<% session.setAttribute(“a”,“kitty”) %>
取${sessionScope.a}
通过隐式对象取表单action上?的值:
eg:
存<form action="MyJsp.jsp?n1=666" method="post"></form>
取 ${param.n1}
拼到项目名:
<jsp:forward page="${pageContext.request.contextPath}/index.jsp">
<jsp:param value="666" name="n1"> //相当于问号传值
</jsp:forward>
二.JSTL标签库:
封装了一些有固定功能的java代码,使用标记来代替java代码
1.c核心库 if for set
2.fmt国际化库
3.sql 数据库的处理
开发步骤: 1.通过指令标记引入导入库
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> //导入其他标签的指令
tld后缀----约束文件
2.使用标记
核心标签库:
动态获取的值:EL表达式
1.向作用域内赋值:<c:set var=”自己定义的名称” value=”往作用域要存入的值(可以用EL达式)” scope=”要存哪个作用域” />
相当于 request.setAttribute("name","value");
2.输出显示的值:<c:out value=”要显示在页面上的值” default=”当值找不到时默认显示的内容” />
3.删除:<c:remove scope=”作用域” var=”key值(自己定义存进去的名字)” />
4.条件: if(){}:<c:if test="条件EL表达式" var="a" scope="request">
<jsp:forward page="index.jsp"></jsp:forward>
</c:if>
if(){}else if (){}else if (){}else{} :<c:choose>
<c:when test="条件EL表达式"><c:out value=”输出内容” /></c:out></c:when>
<c:when test="条件EL表达式"><c:out value=”输出内容” /></c:out></c:when> <c:when test="条件EL表达式"><c:out value=”输出内容” /></c:out></c:when>
<c:otherwise><c:out value=”输出内容” /></c:otherwise>
</c:choose>
5.循环:
<c:forEach items="EL表达式,要循环的内容,集合" var="自己起名字,每次循环得到的东西">
<c:out value=”EL表达式,写自己var起的名字” /></c:out>
</c:forEach>