0

このフォーラムは初めてです。私のアプリケーションのJSP/サーブレットに疑問があります。ユーザーが特定の基準に基づいてデータを検索し、データベースから(Hibernateを介してサーブレットおよびJSPに)データを取得するアプリケーションを開発しました。検索に基づいて画面にデータが表示されると、URLをコピーして誰かに転送しようとするか、別のブラウザで開こうとすると空のページが表示されます。例:以下のリンクを貼り付けようとすると、空白のページの 例のリンク が表示されますが、これを実現する方法をデータに表示する必要があります。

編集済み:コメントに記載されているようにメニューバーの求人検索をクリックすると、ページはサーブレットにリダイレクトされます

 if(action.equals("searchjob")){
            String requireskills=request.getParameter("txt_requireSkills");
             String location=request.getParameter("txt_locationName");
             session.setAttribute("location",location);
             String minexp1=request.getParameter("dd_minimum");
             String maxexp1=request.getParameter("dd_maximum");
             jobsearchDAO = new JobSearchDAOImpl(); 

            List<JobPostInfo> data=jobsearchDAO.jobsearchlist(requireskills,location,minexp1,maxexp1);

            if(data!=null && data.size()!=0){
                //save data



              if(!(session.getAttribute("LoginObject")==null)){
                JobSeeker jobSeeker=(JobSeeker)session.getAttribute("LoginObject");

                JobSearchCriteria jobsearchcriteria= new JobSearchCriteria();
                jobsearchDAO=new JobSearchDAOImpl();

                 jobsearchcriteria.setKeyWords(requireskills);
                 jobsearchcriteria.setLocation(location);

                JobSeeker jobseeker=(JobSeeker)session.getAttribute("jobseeker");
               // 
               // jobsearchcriteria.setJobSeeker(jobseeker.getJobSeekerSn()); 


               jobsearchcriteria.setJscTs(new Date());
                int value=jobsearchDAO.savesearch(jobsearchcriteria);
                 System.out.println("savesearch value------>"+value);

                }


                    session.setAttribute("jobsearchlist", data);

                  //  session.setAttribute("success","Search Criteria is saved to database."); 

                response.sendRedirect("jobsearchresult.jsp");
                }else 
                {

                  session.setAttribute("error","No Records found");

                   response.sendRedirect("jobsearch.jsp");
                }

        }

これはDAOIMPLのコードです

     public List<JobPostInfo> jobsearchlist(String requireskills,String location,String minexp1,String maxexp1) throws Exception{
     long minexp;
     long maxexp;

       try{
             session =getSession();
            //Criteria Query
            Criteria query=session.createCriteria(JobPostInfo.class,"jpost");



          // if(minexp1.equals("0") && (maxexp1.equals("") || maxexp1==null)){
          if((minexp1.equals("-1")  || minexp1=="-1") && maxexp1==null){

           }
          else if(minexp1.equals("0")){

                minexp=Long.parseLong(minexp1);
                long min=1;
                query.add(Restrictions.lt("jpost.experienceMin",min)); 
           }else if(!(minexp1.equals("") || minexp1==null) && maxexp1.equals("-1")) {

                    minexp=Long.parseLong(minexp1);
                    query.add(Restrictions.ge("jpost.experienceMin",minexp));  
           }else if(!(minexp1==null && maxexp1==null)){

                   minexp=Long.parseLong(minexp1);
                   maxexp=Long.parseLong(maxexp1);
                   query.add(Restrictions.and(Restrictions.ge("jpost.experienceMin",minexp),Restrictions.le("jpost.experienceMax",maxexp)));
               }   



             //For Location 

                 if(!(location==null|| location.equals(""))){
                                    query.createAlias("jpost.location","location");
                                    query.add(Restrictions.like("location.locationName",location).ignoreCase());

                 }
            //For Keyword
             if(!(requireskills==null || requireskills.equals(""))){


                     query.add(Restrictions.like("jpost.requiredSkills","%"+requireskills+"%").ignoreCase());
                 }//requireskills

             List<JobPostInfo> list = query.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();



             if(list.size()==0){
             return null;
             }else{
                 return list;
                 }

             }catch(HibernateException e){
              e.printStackTrace();
             }finally {
             close(session);
             }
             return null;


 }
4

1 に答える 1

0

私は自分の問題を解決しました。これは非常に基本的な間違いであり、これが他の人に役立つことを願っています。

response.sendRedirect("jobsearchresult.jsp")に置き換えられますrequest.getRequestDispatcher("studentinformation.jsp").forward(request, response)

またはinclude-method。2つ目は、セッションが作成され、サーブレットで初期化されることです。別のブラウザでリンクをコピーすると、サーブレットの特定のブロックが実行されます。

action.equals( "searchjob")

そのため、セッションがまだ利用できないときは、宣言と初期化を分離するように、すべてのブロックでセッションを初期化します。

于 2012-06-01T07:40:22.820 に答える