开发者社区> 问答> 正文

为什么java里不提示FileNotFound,jsp里却报错?真奇怪,真奇怪...?报错

一个index.jsp一个bean包里的pagingbean.java。

PS:求别吐槽这个分页做法。。。。。或者帮我改完,在吐槽也成啊

测试pagingbean.java完全没问题。。。

package bean;

import java.io.BufferedReader;

import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;




public class pagingbean {


	private final int size=4;//控制每页显示几条数据;
	private int countPage;//计算总页数
	private ArrayList<String> list;//存储读取的内容
	private int index;//根据当前第几页,获取list中的索引 index开始到index+size-1结束
	
	//将每一行的内容存入list中,并获取总页数。
	public  void saveContentInList()
	{
			FileReader file;
			
			try {
				file = new FileReader("WebRoot/File/book.txt");//FileNotFoundException e
				//file = new FileReader("File/book.txt");
				BufferedReader buff=new BufferedReader(file);//主要是利用它的readline();
				String buffer=null;
				
				list=new ArrayList<String>();
				while((buffer=buff.readLine())!=null)
				{
					//将buffer加入集合当中
					
					//排除空行!排除只有空格!isEmpty从1.6版本开始。
					/*if(!buffer.trim().isEmpty())
					{
						count++;
					}*/
					
					if(!buffer.trim().equals(""))
					{
						
						list.add(buffer);
					}
				}
				
			
			} catch (IOException e) {
				
				e.printStackTrace();
			}

	}
	
	//获取总页数
	
	public int getAllPages()
	{
		countPage=list.size()/size;
		if(list.size()%size>0)
		{
			countPage=list.size()/size+1;
		}	
		return countPage;
	}
	
	
	//根据当前第几页,获取list中的索引 index开始到index+size-1结束
	public void getIndextInList(int nowPage)
	{
		index=(nowPage-1)*size;
		
	}
	
	
	//测试
	public static void main(String[] args) {
		
		pagingbean pgb=new pagingbean();
		pgb.saveContentInList();
		int pages=pgb.getAllPages();
		System.out.println("ppppp"+pages);
		//pgb.list;
		System.out.println(pgb.list);
		System.out.println(pgb.countPage);
		pgb.getIndextInList(2);
		System.out.println(pgb.index);
	}

}

在jsp里却报错,提示 找不到文件 以及空指针

<body>
  <jsp:useBean id="pagetool" scope="page" class="bean.pagingbean"></jsp:useBean>
  This is my JSP page. <br>
  <%
   	pagetool.saveContentInList();
   	//获取总页数
   int pages=pagetool.getAllPages();
   	
   %>
   当前共有<%=pages%>

展开
收起
爱吃鱼的程序员 2020-06-22 17:14:01 727 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你在web容器里调用<spanstyle="color:#0000FF;font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;line-height:14.65625px;background-color:#F8F8F8;">WebRoot/File/book.txt这个路径好像不对<divclass="ref">

    引用来自“breaking”的答案

    <divclass=ref_body>你在web容器里调用<spanstyle="color:#0000FF;font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;line-height:14.65625px;background-color:#F8F8F8;">WebRoot/File/book.txt这个路径好像不对回复<aclass='referer'target='_blank'>@breaking:丢进bin目录里,然后使用什么路径呢?//file=newFileReader("D:/apache-tomcat-6.0.32/bin/book.txt");不行啊,而且就算对的话,我的程序不是只有在我的电脑上可以正确运行了么回复<aclass='referer'target='_blank'>@亡灵S:如果你用的是tomcat就把放文件的目录丢进tomcat的bin目录试试。回复<aclass='referer'target='_blank'>@breaking:这样啊,但是我改成这两个还是报错file=newFileReader("File/book.txt");或者file=newFileReader("book.txt");直接运行一个java文件和在容器里运行是不一样的。

    <spanstyle="color:#0000FF;font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;font-size:12px;line-height:14px;background-color:#F8F8F8;">这个路径Main方法能用不代表JSP能用,

    JSP有自Context上下文,路径是在这里解析的,这个肯定是找不到文件



    当你以JavaApplication的方式运行时,当前目录是你的工程目录,所以不会报错,但是当你通过Tomcat运行时,当前目录可能是tomcat/bin目录(不一定)。你检查一下tomcat在哪里,解决的办法是设置一个properties文件,在里面记录下文本文件的绝对位置,程序运行是时候读取这个properties文件,根据路径去找这个文件。<divclass="ref">

    引用来自“王瑞平”的答案

    <divclass=ref_body>

    <spanstyle="color:#0000FF;font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;font-size:12px;line-height:14px;background-color:#F8F8F8;">这个路径Main方法能用不代表JSP能用,

    JSP有自Context上下文,路径是在这里解析的,这个肯定是找不到文件



    包名?

    路径很有可能是/nameofpakage/<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:normal;background-color:#FFFFFF;">File/book.txt

    <divclass="ref">

    引用来自“王瑞平”的答案

    <divclass=ref_body>

    包名?

    路径很有可能是/nameofpakage/<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:normal;background-color:#FFFFFF;">File/book.txt

    <divclass="ref">

    引用来自“antipro”的答案

    <divclass=ref_body>当你以JavaApplication的方式运行时,当前目录是你的工程目录,所以不会报错,但是当你通过Tomcat运行时,当前目录可能是tomcat/bin目录(不一定)。你检查一下tomcat在哪里,解决的办法是设置一个properties文件,在里面记录下文本文件的绝对位置,程序运行是时候读取这个properties文件,根据路径去找这个文件。<divclass="ref">

    引用来自“亡灵S”的答案

    <divclass=ref_body><divclass="ref">

    引用来自“breaking”的答案

    <divclass=ref_body>你在web容器里调用<spanstyle="color:#0000FF;font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;line-height:14.65625px;background-color:#F8F8F8;">WebRoot/File/book.txt这个路径好像不对异常没有trycatch,当然看不到了

    2020-06-22 17:14:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载