%@ page language="java" import="java.util.*" isELIgnored="false"
import="com.user.FileInfo"import="com.user.Book" pageEncoding="GB2312"%>
<%@page import="com.user.BookManagerDB"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
<!--
body {
background: #666666;
margin: 0; /* 最好将 body 元素的边距和填充设置为 0 以覆盖不同的浏览器默认值 */
text-align: center; /* 在 IE 5* 浏览器中,这会将容器居中。文本随后将在 #container 选择器中设置为默认左对齐 */
color: #0F0;
font-family: "宋体", "新宋体";
font-size: 100%;
font-weight: bolder;
}
#mainContent {
/* 右边距可以用全方 (em) 或像素来指定,它会在页面的右下方产生空白。 */
height: 400px;
width: 550px;
float: left; background-image: url(images/addbookbg.gif);
} .divclass {
position: absolute;
height: 212px;
width: 350px;
left:75px;
top:85px;
padding-top:0px;
background-image:url(images/login_03.gif);
}
.inputclass {
width:115px;
height:14px;
text-align:left;
background-color:#292929;
border:solid 1px #7dbad7;
font-size:12px; color:#6cd0ff;
}
-->
</style><!--[if IE]>
<style type="text/css">
/* 请将所有版本的 IE 的 css 修复放在这个条件注释中 */
.twoColElsLt #sidebar1 { padding-top: 30px; }
.twoColElsLt #mainContent { zoom: 1; padding-top: 15px; }
/* 上面的专用 zoom 属性为 IE 提供避免错误所需的 hasLayout */
</style>
<![endif]--></head><body>
<div id="mainContent">
<table width="490" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="90">书的ID</td>
<td width="90">书名</td>
<td width="90">作者</td>
<td width="90">价格</td>
<td width="90">ISBN</td>
<td width="90">书的类型</td>
<td width="90">出版社</td> </tr>
</table>
<% BookManagerDB DM = new BookManagerDB();
DM.readFileDB();
int i=1001;
Iterator it =FileInfo.bookList.iterator();
while(it.hasNext()){i++; Book obj = (Book)it.next();
%>
<table width="490" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="90"><%= obj.getBookid()%></td>
<td width="90"><%= obj.getBookname()%></td>
<td width="90"><%= obj.getDuthor()%></td>
<td width="90"><%= obj.getPrice()%></td>
<td width="90"><%= obj.getIsbn()%></td>
<td width="90"><%= obj.getBooktype()%></td>
<td width="90"><%=obj.getBookname() %></td> </tr>
</table> <%} %>
共有<%=FileInfo.bookList.size()%>记录</div></body>
</html>
中的这段: <tr>
<td width="90"><%= obj.getBookid()%></td>
<td width="90"><%= obj.getBookname()%></td>
<td width="90"><%= obj.getDuthor()%></td>
<td width="90"><%= obj.getPrice()%></td>
<td width="90"><%= obj.getIsbn()%></td>
<td width="90"><%= obj.getBooktype()%></td>
<td width="90"><%=obj.getBookname() %></td> </tr>
要换成EL表达式要怎么实现?
--------------------------------
如果能把这段代码的<% %>去掉那就更好了!
import="com.user.FileInfo"import="com.user.Book" pageEncoding="GB2312"%>
<%@page import="com.user.BookManagerDB"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
<!--
body {
background: #666666;
margin: 0; /* 最好将 body 元素的边距和填充设置为 0 以覆盖不同的浏览器默认值 */
text-align: center; /* 在 IE 5* 浏览器中,这会将容器居中。文本随后将在 #container 选择器中设置为默认左对齐 */
color: #0F0;
font-family: "宋体", "新宋体";
font-size: 100%;
font-weight: bolder;
}
#mainContent {
/* 右边距可以用全方 (em) 或像素来指定,它会在页面的右下方产生空白。 */
height: 400px;
width: 550px;
float: left; background-image: url(images/addbookbg.gif);
} .divclass {
position: absolute;
height: 212px;
width: 350px;
left:75px;
top:85px;
padding-top:0px;
background-image:url(images/login_03.gif);
}
.inputclass {
width:115px;
height:14px;
text-align:left;
background-color:#292929;
border:solid 1px #7dbad7;
font-size:12px; color:#6cd0ff;
}
-->
</style><!--[if IE]>
<style type="text/css">
/* 请将所有版本的 IE 的 css 修复放在这个条件注释中 */
.twoColElsLt #sidebar1 { padding-top: 30px; }
.twoColElsLt #mainContent { zoom: 1; padding-top: 15px; }
/* 上面的专用 zoom 属性为 IE 提供避免错误所需的 hasLayout */
</style>
<![endif]--></head><body>
<div id="mainContent">
<table width="490" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="90">书的ID</td>
<td width="90">书名</td>
<td width="90">作者</td>
<td width="90">价格</td>
<td width="90">ISBN</td>
<td width="90">书的类型</td>
<td width="90">出版社</td> </tr>
</table>
<% BookManagerDB DM = new BookManagerDB();
DM.readFileDB();
int i=1001;
Iterator it =FileInfo.bookList.iterator();
while(it.hasNext()){i++; Book obj = (Book)it.next();
%>
<table width="490" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="90"><%= obj.getBookid()%></td>
<td width="90"><%= obj.getBookname()%></td>
<td width="90"><%= obj.getDuthor()%></td>
<td width="90"><%= obj.getPrice()%></td>
<td width="90"><%= obj.getIsbn()%></td>
<td width="90"><%= obj.getBooktype()%></td>
<td width="90"><%=obj.getBookname() %></td> </tr>
</table> <%} %>
共有<%=FileInfo.bookList.size()%>记录</div></body>
</html>
中的这段: <tr>
<td width="90"><%= obj.getBookid()%></td>
<td width="90"><%= obj.getBookname()%></td>
<td width="90"><%= obj.getDuthor()%></td>
<td width="90"><%= obj.getPrice()%></td>
<td width="90"><%= obj.getIsbn()%></td>
<td width="90"><%= obj.getBooktype()%></td>
<td width="90"><%=obj.getBookname() %></td> </tr>
要换成EL表达式要怎么实现?
--------------------------------
如果能把这段代码的<% %>去掉那就更好了!
解决方案 »
- Missing configuration resource for path /WEB-INF/struts-config.xml高手指点 这是什么情况
- 怎么用一条sql语句把学生的分数都列出来
- JSP有没有技术能给返回的所有页面都加一些内容
- select* from与select字段的区别?
- 高分求基于文本文件的全文检索(急)
- Business Objects是什么啊?
- [que]请教连接池问题
- AXIS客户端调用过程 call.invoke()
- 用带冒号的for循环,如何判断循环到了第几个
- 大神们,求助啊 这异常怎么解决啊
- 问一下为什么把做好了的JAVA聊天文件打包成jar格式在桌面上为什么不可以连接数据库?怎么解决谢谢~~~~
- 关于打开新页面,刷新旧页面的问题
要使用el表达式,必须引入jstl.jar,然后在jsp页面里加上<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<c:forEach var="obj" items="${obj}">
<td width="90"><c:out value="${obj.bookId}"></c:out></td>
<td width="90"><c:out value="${obj.bookName}"></c:out></td>
<td width="90"><c:out value="${obj.duthor}"></c:out></td>
<td width="90"><c:out value="${obj.price}"></c:out></td>
<td width="90"><c:out value="${obj.isbn}"></c:out></td>
<td width="90"><c:out value="${obj.bookType}"></c:out></td>这样就OK了,你就可以在改动很少的jsp页面,从而实现同样的功能了
<td width="90"><c:out value="${obj.bookId}"></c:out></td>
<td width="90"><c:out value="${obj.bookName}"></c:out></td>
<td width="90"><c:out value="${obj.duthor}"></c:out></td>
<td width="90"><c:out value="${obj.price}"></c:out></td>
<td width="90"><c:out value="${obj.isbn}"></c:out></td>
<td width="90"><c:out value="${obj.bookType}"></c:out></td>
DM.readFileDB();
int i=1001;
Iterator it =FileInfo.bookList.iterator();
while(it.hasNext()){i++; Book obj = (Book)it.next();
session.setAttribute("obj",obj);
%>
<table width="490" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="90"><c:out value="${sessionScope.obj.getBookid()}"></c:out></td>
<td width="90"><c:out value="${sessionScope.obj.getBookname()}"></c:out></td>
<td width="90"><c:out value="${sessionScope.obj.getDuthor()}"></c:out></td>
<td width="90"><c:out value="${sessionScope.obj.getPrice()}"></c:out></td>
<td width="90"><c:out value="${sessionScope.obj.getIsbn()}"></c:out></td>
<td width="90"><c:out value="${sessionScope.obj.getBooktype()}"></c:out></td>
<td width="90"><c:out value="${sessionScope.obj.getPublished}"></c:out></td> </tr>
</table> <%} %>
共有<%=FileInfo.bookList.size()%>记录
错误如下。。是什么原因?
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
yao.com.vo.EncodingFilter.doFilter(EncodingFilter.java:23)
root cause org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:600)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
yao.com.vo.EncodingFilter.doFilter(EncodingFilter.java:23)
root cause java.lang.ClassNotFoundException: org.apache.jsp.BookInfor_jsp
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:598)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
yao.com.vo.EncodingFilter.doFilter(EncodingFilter.java:23)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.13
然后将book中的值取出来存在list中,最后用session.setAttribute("obj", list);
要使用el表达式,必须引入jstl.jar,然后在jsp页面里加上Java code
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Java code<c:forEach var="obj" items="${obj}">
<td width="90">${obj.bookId}</td>
<td width="90">${obj.bookName}</</td>
<td width="90">${obj.duthor}</</td>
<td width="90">${obj.price}</td>
<td width="90">${obj.isbn}</td>
<td width="90">${obj.bookType}</td>
</c:forEach>
这样就ok了
改为
<td width="90"><c:out value="${obj.bookId}"></c:out></td>
private String bookname;//书籍的名字
private String duthor;//书的作者
private String isbn;//书的ISBN
private double price;//书的价额
private String booktype;//书的类型
private String published;//出版社名字
private int bookid;BookManagerDB BM= new BookManagerDB();public void setBookid( int bookid) {
this.bookid = bookid;
}
public int getBookid(){
return bookid;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getDuthor() {
return duthor;
}
public void setDuthor(String duthor) {
this.duthor = duthor;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getBooktype() {
return booktype;
}
public void setBooktype(String booktype) {
this.booktype = booktype;
}
public String getPublished() {
return published;
}
public void setPublished(String published) {
this.published = published;
}public int addBook(String bookname,String duthor,String isbn,double price,String booktype,String published)
{ if(FileInfo.bookList==null){
FileInfo.bookList=new ArrayList();
}
BM.readFileDB();
setBookid(FileInfo.bookIdCounter);
this.bookname = bookname;
this.duthor = duthor;
this.isbn = isbn;
this.price = price;
this.booktype = booktype;
this.published = published;
return getBookid();
}
}
这是我Book类,为什么大家多要这样改
<td width="90"> <c:out value="${sessionScope.obj.getBookid()}"> </c:out> </td>
改为
<td width="90"> <c:out value="${obj.bookId}"> </c:out> </td>
我的bookid....==都是private类型,这样能访问吗?还是不太明白!!
好好自己找点资料练习练习!
看了你的回复,建议你好好看看session,request,application的概念。
至于
这是我Book类,为什么大家多要这样改
<td width="90"> <c:out value="${sessionScope.obj.getBookid()}"> </c:out> </td>
改为
<td width="90"> <c:out value="${obj.bookId}"> </c:out> </td>
我的bookid....==都是private类型,这样能访问吗?还是不太明白!!我想说的是,你的这个类都拿出来了,难道还拿不出他的属性吗???
至于用sessionScope,没有必要用它,因为所有的对象默认就放在SessionScope中
<c:out value="${obj.bookId}">
这个语句是在可用域里查找叫做obj的变量,然后查找它的bookId属性,并输出。
并不等同于java中的obj.bookId。
实际运行的时候,会根据java bean的规范,调用相应的get方法取得这个属性的值。