无法解析为变量exportStr

时间:2013-06-05 23:58:45

标签: java jsp servlets

我在这一行的jsp中有错误  <a href="<%=response.encodeURL(request.getContextPath()+"/ExportQP")%>?typeFichier=xls&exportStr=<%=exportStr%>"> Export Excel </a>

我尝试通过在jsp:

执行此操作来导入类java ExportQP

<%@ 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无法解析为变量“。

1 个答案:

答案 0 :(得分:0)

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

您是否将Servlet导入JSP? Servlet不应该导入。

  

Servlet通常会接收并响应来自Web客户端的请求   跨HTTP,超文本传输​​协议。

它们被Servlet映射名称定义,在您的情况下似乎是ExportQP

错误意味着你的JSP中应该有一个名为exportStr的变量,如

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