Reputation: 13
I am trying to read from a txt file and display it to a JSP file.
The Bean class gets BufferedReader
from the FileReaderz
class.
I create a Beanx
object in jsp, but this is where I get stuck
public class Beanx {
public OuterBlock[] outer=new OuterBlock[100];
public InnerBlock[] inner=new InnerBlock[100];
/*public List<String> token1 = new ArrayList<String>();
public List<String> token2 = new ArrayList<String>();*/
//String[] token1;
//String[] token2;
public void callFileReaderz()throws Exception{
FileReaderz fr=new FileReaderz();
BufferedReader br1=FileReaderz.br;
String[] token;
int i=0,j=0;
String line;
while((line=br1.readLine())!=null){
//System.out.println(line);
token=line.split("#");
//List<String> tokenList=Arrays.asList(token);
if(token.length==5){
OuterBlock outerObj=new OuterBlock(token[0],Integer.parseInt(token[1]),Integer.parseInt(token[2]),
Float.parseFloat(token[3]),Float.parseFloat(token[4]));
this.outer[i++]=outerObj;
//System.out.println(token[0]);
}
else{
InnerBlock innerObj = new InnerBlock(token[0],token[1],Integer.parseInt(token[2]),
Integer.parseInt(token[3]),Float.parseFloat(token[4]),Float.parseFloat(token[5]));
this.inner[j++]=innerObj;
}
}
br1.close();
}
public Beanx() throws Exception{
this.callFileReaderz();
}
}
public class FileReaderz {
public static BufferedReader br;
public static void main (String[] args)throws Exception {
// TODO Auto-generated method stub
//public FileReaderz() throws FileNotFoundException{
br=new BufferedReader(new FileReader("database1.txt"));
//System.out.println(br.readLine());
}
}
When I try this in JSP page,
I get the error:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 15 in the jsp file: /dashBoard.jsp
Default constructor cannot handle exception type Exception thrown by implicit super constructor. Must define an explicit constructor
12: </head>
13:
14: <body>
15: <%! Beanx bean=new Beanx(); %>
16: <div class="table-title">
17: <h3>Projects In Repository</h3>
18: </div>
Upvotes: 1
Views: 1776
Reputation: 3914
This is because the Beanx
class constructor throws Exception
and you are creating Beanx
object in declaration tag without handling the exception.
To resolve this issue just initialize the Beanx in declaration tag with null
as below:
<%! Beanx bean =null; %>
And whenever you need to use this bean in scriptlet tag use the below code:
<%
try{
bean=new Beanx();
}catch(Exception e){
//To do something
}
%>
This is same as in below java code:
class Main extends HttpServlet{
Beanx bean =null;
protected void doGet(HttpServletRequest request, HttpServletResponse response){
try{
bean=new Beanx();
}catch(Exception e){
//To do something
}
}
}
Upvotes: 1