2013-06-05 6 views
1

У меня есть ошибка в JSP на этой линии <a href="<%=response.encodeURL(request.getContextPath()+"/ExportQP")%>?typeFichier=xls&exportStr=<%=exportStr%>"> Export Excel </a>не может быть решена с переменной exportStr

Я пытался импортировать класс Java ExportQP, делая это в JSP:

<%@ page import="com.export.servlet.ExportQP"%>

Вот мой класс ExportQP

public class ExportQP extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { 
    public ExportQP() { 
     super(); 
    } 

    /* (non-Java-doc) 
    * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     System.out.println("Export Excel GET"); 
     //On récupère les patramètres 
     String typeFichier = request.getParameter("typeFichier"); 
     String exportStr = request.getParameter("exportStr"); 

     //String exportTab1[] = exportStr.split("$$"); 
     //int nbLignes = exportTab1.length; 

     //Preparation de la date pour le nom du fichier 
     Date dateExport = new Date(); 
     Timestamp timeStampDate = new Timestamp(dateExport.getTime()); 
     DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy-HH-mm"); 
     String affDate = formatter.format(timeStampDate); 

     response.setHeader("Cache-Control", "public"); 
     response.setHeader("Pragma", "public"); 
     //On donne le nom du fichier 
     response.setHeader("Content-Disposition", "attachment; filename=\"Export"+affDate+"."+typeFichier+"\""); 

     //On récupère le flux de sortie 
     ServletOutputStream out = response.getOutputStream(); 

     //On indique le type d'export que l'on va faire 
     if(typeFichier.equals("xls")){ 
      System.out.println("Type XLS"); 
      response.setContentType("application/vnd.ms-excel"); 
      // On crée l'Excel Workbook et le Sheet 
      HSSFWorkbook wb = new HSSFWorkbook(); 
      HSSFSheet sheet = wb.createSheet("Annuaire CHIELVR"); 
      //HSSFHeader header = sheet.getHeader(); 
      //header.setCenter("Annuaire CHIELVR header"); 

      HSSFRow row = null; 
      HSSFCell cell = null; 
      String entreeStr = ""; 
      //String[] exportTab2 = null; 
      //On récupère le nombre de lignes et on boucle dessus 
      StringTokenizer st = new StringTokenizer(exportStr,"$$"); 
      //for(int i = 0; i < st.countTokens(); i++) 
      int nbLignes = st.countTokens(); 
      for(int i = 0; i < nbLignes; i++) 
      { 
       //On creer la ligne 
       row = sheet.createRow(i); 
       //On récupère l'entrée 
       entreeStr = st.nextToken(); 
       //On coupe la ligne pour obtenir les différents champs de l'entrée 
       StringTokenizer st2 = new StringTokenizer(entreeStr,";"); 
       String token = ""; 
       for(int j = 0; j < st2.countTokens(); j++) { 
        cell = row.createCell(j); 
        token = st2.nextToken(); 
        if(token != null){ 
         cell.setCellValue(token); 
        }else{ 
         cell.setCellValue(" "); 
        } 
       } 
      } 
      //On écris le contenu du workbook sur le flux de sortie 
      wb.write(out); 
      out.close(); 
     }else if(typeFichier.equals("csv")){ 

      System.out.println("Type CSV"); 
      String print = ""; 
      response.setContentType("application/CSV"); 
      StringTokenizer st = new StringTokenizer(exportStr,"$$"); 
      int cptToken = st.countTokens(); 
      String content = "" ; 
      for(int i = 0; i < cptToken; i++) { 
       print = st.nextToken(); 
       content += print; 
       content += "\n"; 
      } 
      out.print(content); 
     } 
    }  

    /* (non-Java-doc) 
    * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     System.out.println("Export Excel POST"); 
    } 

} 

Так что моя ошибка в том, что мой JSP говорит мне exportStr CANN ot быть разрешен к переменной ".

ответ

0
<%@ page import="com.export.servlet.ExportQP"%> 

Вы импортировали сервлет в JSP? Сервлеты не должны быть импортированы.

Сервлеты получают и отвечают на запросы от веб-клиентов, обычно через HTTP, протокол передачи гипертекста.

Их называют определяемыми именами сервлетов, которые, как представляется, ExportQP в вашем случае.

ошибка означает, что Вы должны иметь переменную с именем exportStr в вашем JSP как

<% 
String exportStr="Hello World"; 
%> 
+0

: спасибо за разъяснения, я думаю, что это все, что я хочу знать – djoStack

+0

@jdoStack: Вы можете принять ответ, если его полезно , :) –

+0

да я буду, спасибо за ответ – djoStack

Смежные вопросы