本实验有三个页面,
1)input.jsp和show.jsp:
用户在input.jsp页面输入计算机的品牌、型号、价格和数量,并提交给当前页面。当前页面调用名字为computer的bean对象,存储计算提交的数据。input.jsp页面提供访问show.jsp页面的超链接。注:当用户提交的数据有空值,价格或数量不是数字时,程序要处理并给用户返回相应错误信息。
show.jsp页面调用名为computer的bean,显示该bean的各个属性值。分别用动作标记和EL表达式两种方式返回要显示的数据。
(提示:input.jsp和show.jsp页面使用同一个computer对象,在创建computer时,scope值为session)
2)Computer.java:
Computer.java具有描述计算机品牌、型号、价格、数量和总金额等属性,并提供相应的getXXX和setXXX方法。本类在包com.my.bean中。
写出input.jsp,show.jsp和Computer.java的内容。
页面显示效果如下图:
input.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<jsp:useBean id="computer" class="com.my.bean.computer" scope="session"></jsp:useBean>
<script type="text/javascript">
function notNull(f){
var a = f.sign.value;
var b = f.type.value;
var c = f.price.value;
var d = f.number.value;
var numVal=/^[1-9]\d*$/;
if(a.length==0 ){
alert("输入不能为空");
f.a.select();
}
if(b.length==0 ){
alert("输入不能为空");
f.b.select();
}
}
</script>
//JavaScript函数,增加判断输入是否为空或是是否为数字
<form action="" method="post" οnsubmit="return notNull(this)">
<p>品牌:<input type="text" name = "sign"/>
<p>型号:<input type="text" name = "type"/>
<p>价格:<input type="text" name = "price"/>
<p>数量:<input typr="text" name = "number">
</br> </br>
<input type=submit name = "提交">
</form>
<jsp:setProperty property="*" name="computer" />
//*号代表设置全部的属性值,name表示属性值,与JavaBean中属性值保持一致
<a href="show.jsp"> 访问show.jsp,查看相关信息!</a>
//超链接跳转 等价于response.sendRedirect("show.jsp"); //重定向
show.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<jsp:useBean id="computer" class="com.my.bean.computer" scope="session"></jsp:useBean>
<p>计算机的品牌:<jsp:getProperty property="sign" name="computer"/></p></br>
<p>计算机的型号:<jsp:getProperty property="type" name="computer"/></p></br>
<p>计算机的价格:<jsp:getProperty property="price" name="computer"/></p></br>
<p>计算机的数量:<jsp:getProperty property="number" name="computer"/>
package com.my.bean;
import java.io.UnsupportedEncodingException;
public class computer {
String sign,type;
int price,number;
double total;
public double getTotal() {
total = price*number;
return total;
}
public String getSign() {
return sign;
}
public void setSign(String sign) {
try{
sign = new String(sign.getBytes("ISO-8859-1"),"UTF-8");
}catch (UnsupportedEncodingException e){
e.printStackTrace();
} //处理字符集,即处理客户端中文乱码的问题
this.sign = sign;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}