什么是Javabean?
Javabean实际上就是一个Java类,一般满足下列的需求
1:一个共有类,并且提供无参数的构造方法(默认)
2:具有set和get方法
3:属性私有
使用Javabean的方式有两种,
一种是在类中直接使用
比如在页面顶部导入类,<@ page include =”com.bean.studnet”%>
在jsp中进行实例化操作<% student stu = new student()%>
访问javabean<%=stu.getXX()%>
另一种方式是在jsp中创建javabean标签
比如说:
<jsp:useBean class=”com.bean.student” id=”beanName” scope = “request/session/application/page”(一般默认是page)>标签用于在jsp中查找或者实例化一个Javabean组件,
<jsp:setProprety name=”beanName” proprety=”name” value=”张三”>用于设置javabean中属性的值 name必须和usebean中的id相同,proprety是属性名
<jsp:getProprety name=”beanName” proprety=”name”>用于获取Javabean中属性的值
因为在jsp中创建javabean比较麻烦,所以一般都是在类中直接使用的。
为什么使用EL表达式?
EL表达式界面结构清晰,代码可读性高,易于维护。
EL可以进行一些操作,
1算数运算符 ${6+6} ${4*8}
2关系运算符操作 ${8>1} ${1+1=6}
3逻辑运算符操作 {false&&false}
4三元运算符操作 ${3>2?true:false}
EL表达式也可以通过操作符来获取页面上下文中的数据,需要使用“.”来操作
从隐式对象中得到数据:
pageScope ${userName} 相当于<%=pageContext.getAttribute("user").getUserName%>
requestScope ${requestScope.books} 相当于<%=request.getAttribute("books")%>
sessionScope ${sessionScope.lastURL} 相当于<%=session.getAttribute("lastURL")%>
applicationScope ${applicationScope.provice} 相当于<%=application.getAttribute("provice")%>
Page
访问数据作用域对象
如果没有设置具体的范围,它会从page开始到application结束遍历查询。如果没有找到则返回为null
已经有了EL表达式那么为什么还需要使用JSTL呢?
EL表达式无法实现逻辑控制
所以在实际的开发中,需要结合EL和JSTL一起使用。
在使用JSTL之前,需要先往项目里面导包
根据自己需要下载版本
具体的用法
在jsp 页面的头部使用taglib指令引用
1<%@ taglib uri= ”http://java.sun.com/jsp/jstl/core” prefix=”c” %>
这个就是我们常说的C标签
常用的标签 <c:out/>输出变量标签<c:out value=”abc”/>类似于<%=”abc”%>
<c:set>设置变量标签<c:set var="name" value= "value " scope="scope" />
<c:if test=””/>实现条件的判断test判断条件其结果为true时执行相应代码,
<c:catch/> 捕获异常处理
由于时间的显示问题所以我们经常用到fmt标签
在jsp页面的头部使用taglib指令引用
2<%@ taglib uri=”http://java.sun.com/jsp/jstl/fmt” prefix=”fmt”%>
常用的标签
对数据进行格式化的标签
<fmt:formatNumber value=”要被格式化的数字” type=”currency(默认为本地符号输出,也可以自定义符号)”/>
将数字声明为百分数<fmt:formatNumber value="100" type="percent"/>
3:<%@ taglib uri=”http://java.sun.com/jsp/jstl/function” prefix=”fn”%>
常用的标签有fn:contains(String s1,String s2)判断是否包含指定的字符串,必须在EL表达 式中使用,比如说
<c:set var="theString" value="I am a test String"/>
<c:if test="${fn:contains(theString,'a')}">
说明已经成功执行
</c:if>
还有fn:substring(String s1,int a,int b)又来截取执行的字符串比如说
<c:set var="theString" value="I am a test String"/>
${fn:substring(theString,0,3)}
就举两个例子吧,剩下的自己fn标签自己摸索吧,和Java中String没有什么太大的区别。