一:动作标记useBean
useBean标记格式如下:
<jsp:useBean id="ben的名字" class="创建ben的类" scope="bean的有效范围"></jsp:useBean>
上面这个说的不够详细 用图来说明一下
接着我们来写一下 课本上的例子 :创建一个 ben java文件 Rectangle.java 和example5-2.jsp
1.在java Resource -----src -----右键 new-----Packge 名字 是 com.bean(这里什么包名都可 )
5-1 矩形 对象 Rectangle.java
package com.bean;
// 就是构建 对象函数
public class Rectangle {
private double lenght;
private double width;
// 使用无参构造的方法 给 对象赋值
public Rectangle() {
lenght = 20;
width = 10;
}
// 让 构造的对象 拥有 访问和和改写的功能
public double getLenght() {
return lenght;
}
public void setLenght(double lenght) {
this.lenght = lenght;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
// 构建矩形的面积方法
public double computArea() {
return lenght * width;
}
// 构建 矩形 周长的方法
public double computerlength() {
return (lenght + width) * 2;
}
}
5-2example5-2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>example5_2.jsp</title>
</head>
<body>
<!-- 下面这个bean 相当于 在 java 界面中 的
Reatangle rectangle = new Rectangle(); 重新 构建 对象
jsp:usebean 中 ID 相当于 被赋值的对象 这里相当于 rectangle
而 class 相当于 需要连接的类对象 就是 编辑的class文件
而 scope 指的是 JavaBean 的使用范围 page值得 是 只在 当前页面使用
-->
<jsp:useBean id="rectangle" class="com.bean.Rectangle" scope="page"></jsp:useBean>
<p>矩形的长是:<%=rectangle.getLenght() %>
<p>矩形的宽是:<%=rectangle.getWidth() %>
<p>矩形的面积:<%=rectangle.computArea() %>
<p>矩形的周长:<%=rectangle.computerlength() %>
</body>
</html>
解释 rectangle 的作用就和 下图一致
运行结果:
二:动作标记getProperty
语法格式:
<jsp:getProperty property="bean的属性" name="bean的名字"/>
解释一下 语法格式
这里运行一下 课本上 5-3的例子 来看一下
新建NewRectangle.java
package com.bean;
public class NewRectangle {
double length;
double width;
double rectangleArea;
double rectanglelength;
public NewRectangle() {
// TODO Auto-generated constructor stub
length = 20;
width = 10;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getRectangleArea() {
return length * width;
}
public double getRectanglelength() {
return 2 * (width + length);
}
}
新建useGetProperty.jsp 文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>useGetProperty</title>
</head>
<body>
<!-- GetProperty 相当于 修改了对象的参数值 property指定的是修改都得值 name 指定的范围是pid -->
<jsp:useBean id="pid" class="com.bean.NewRectangle" scope="page"></jsp:useBean>
<%pid.setLength(30); %>
<%pid.setWidth(20); %>
<p>矩形的长是:<jsp:getProperty property="length" name="pid"/>
<p>矩形的宽是:<jsp:getProperty property="width" name="pid"/>
<p>矩形的面积:<jsp:getProperty property="rectangleArea" name="pid"/>
<p>矩形的周长:<jsp:getProperty property="rectanglelength" name="pid"/>
</body>
</html>
运行结果:
三:动作标记setProperty
语法格式
<jsp:setProperty property="bean的属性" name="bean的名字" value="字符串" />
解释语法
这里运行 课本上的5-4例子 来看一下
1.新建一个Car.java
package com.bean;
public class Car {
String tradeMark;
String number;
public String getTradeMark() {
return tradeMark;
}
public void setTradeMark(String tradeMark) {
this.tradeMark = tradeMark;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
2.建一个car.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--jsp:setProperty 属性property 对象的参数数 指定 name usebean中的名字value 给
java类中的参数指定数值
同样也可以在界面 定义一个参数 赋值 引用 在 jsp:getProperty的时候 指定 name为本界面的
ID即可 同样可以达到修改的目的 -->
<jsp:useBean id="smallCar" class="com.bean.Car" scope="page"></jsp:useBean>
<%
String carNo = "京A8888";
%>
<%-- 使用setProperty标记设置 smallCar 的tradeMark 属性值为“宝马x6” --%>
<jsp:setProperty property="tradeMark" name="smallCar" value="宝马x6" />
<%-- 使用setProperty标记设置 smallCar的number属性值为carNo --%>
<jsp:setProperty property="number" name="smallCar" value="<%=carNo%>" />
汽车的品牌是:<jsp:getProperty property="tradeMark" name="smallCar" />
<br />汽车的牌号是:<jsp:getProperty property="number" name="smallCar" />
</body>
</html>
运行结果:
四:接下来课本是给了一个 利用form表单的 来提交chass里面的参数的例子 :大体意思是在 表单里面 输入数据 而表单里面的name 值关联的是 类文件的参数名 ;然后提交到jsp文件中去 jsp文件通过 setProperty 这个标记 修改 class类文件 的属性 相当于Test1 test1 = new Test1(); test1.setNameString("王五"); 然后在通过 getProperty 指定class文件中的属性参数来输出 出来; 通过代码看一下 例:5-5
1)新建一个inputerCar.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="showCar.jsp" method="post">
请输入汽车品牌:
<input type = "text" name="tradeMark"/>
<br>
请输入汽车牌号:<input type="text" name="number" /> <br>
<input type="submit" value="提交" />
</form>
</body>
</html>
2.)页面文件 showCar.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 实现的原因 1首先 新建了对象 2.通过jsp:setProperty 的性质 匹配form表单中的值
3.再用 jsp:getProperty调用输出-->
<%
request.setCharacterEncoding("utf-8");
%>
<%--通过Http表单的参数值设置bean的属性(表单参数与属性自动匹配) --%>
<jsp:useBean id="smallCar" class="com.bean.Car" scope="page"></jsp:useBean>
<jsp:setProperty property="*" name="smallCar" />
汽车品牌是:<jsp:getProperty property="tradeMark" name="smallCar" />
<br> 汽车的牌号是:<jsp:getProperty property="number" name="smallCar" />
</body>
</html>
3)里面的useBean 文件 class文件所连接的 class文件是之前 写过的 Car.java文件
运行结果图;‘
’
五:5.2.4实践环节---------使用javabean计算三角形的面积和周长
1.)首先需要一个三角形 对象 这个对象 他有 3个边 还需要 周长 和面积 这些 都是他的属性
新建Triangle.java 文件
package com.bean;
//建立三角形实体对象
public class Triangle {
double edgeA;
double edgeB;
double edgeC;
boolean judge;
double Perimeter;
public double getPerimeter() {
return Perimeter;
}
public void setPerimeter(double perimeter) {
Perimeter = perimeter;
}
public boolean isJudge() {
if (edgeA + edgeB > edgeC && edgeA + edgeC > edgeB && edgeB + edgeC > edgeA) {
return true;
} else {
return false;
}
}
public void setJudge(boolean judge) {
this.judge = judge;
}
public double getArea() {
double s = ((edgeA + edgeB + edgeC) / 2f);
double Area = Math.sqrt(s * (s - edgeA) * (s - edgeB) * (s - edgeC));
return Area;
}
public double getEdgeA() {
return edgeA;
}
public void setEdgeA(double edgeA) {
this.edgeA = edgeA;
}
public double getEdgeB() {
return edgeB;
}
public void setEdgeB(double edgeB) {
this.edgeB = edgeB;
}
public double getEdgeC() {
return edgeC;
}
public void setEdgeC(double edgeC) {
this.edgeC = edgeC;
}
}
2) 有了 对象之后 需要页面看的到的一些 提供用户输入的form表单
这里建立一个 inputTriangle.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>inputTriangle.jsp</title>
</head>
<body>
<form action="showTriangle.jsp" method="post">
输入三角形的三边: <br> 边A:<input typr="test" name="edgeA" /> <br>
边B:<input typr="test" name="edgeB" /> <br> 边C:<input typr="text"
name="edgeC" /> <br> <input type="submit" value="提交" />
</form>
</body>
</html>
3)有了以上准备之后 还需要 一个计算后承载的jsp显示界面
这里写的是 showTriangle.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>showTriangle</title>
</head>
<body>
<jsp:useBean id="smallTriangle" class="com.bean.Triangle" scope="page"></jsp:useBean>
<jsp:setProperty property="*" name="smallTriangle" />
三角形的边是:
<br> 边A:<jsp:getProperty property="edgeA" name="smallTriangle" />
边B:<jsp:getProperty property="edgeB" name="smallTriangle" />
边C:<jsp:getProperty property="edgeC" name="smallTriangle" />
<br> 这三个边能构成一个三角形吗?<jsp:getProperty property="judge"
name="smallTriangle" />
<br> 面积是:<jsp:getProperty property="area" name="smallTriangle" />
</body>
</html>
4)运行结果:
运行一个不是 三角形的
到此结束了 ...................................................................................