Avatar billede dl Nybegynder
23. august 2007 - 16:27 Der er 6 kommentarer og
1 løsning

JSP-data til servlet derfra til POJO

Jeg har en jsp side med en form på: ser sådan ud:

    <form name="TestForm" action="NewServlet" method="POST" enctype="text/plain"> 
        <input type="text" name="txtNavn" value="??" size="20" />
        <input type="submit" value="OK" name="btnOK" />
    </form>

og self. er der alt det htlm på, som der skal være.

Jeg trykker nu på knappen og bliver sendt til min servlet, hvor jeg som i kan se vil ligge navn fra txtNavn ind i en class.
Mit spørgmål er så, hvorfor jeg ikke får noget data med over ?

servlet:

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
//        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       
        Person p = new Person();
  //    if ( request.getAttribute("txtNavn") != null )
            p.setNavn(""+request.getAttribute("txtNavn"));
        k.setMedlem(p);       
       
            out.println("test: " + p.getNavn() + "<br>");
            out.println("getAttribut: " + request.getAttribute("txtNavn")+ "<br>");
            out.println("getParameter: " + request.getParameter("txtNavn")+ "<br>");
           
        out.close();
       
             
    }



Hvis jeg køre dette, så få jeg denne udskrift:

test: null
getAttribut: null
getParameter: null
Avatar billede arne_v Ekspert
23. august 2007 - 16:42 #1
Vaerdien burde vaere i getParameter !

Hvordan kommer du fra doPost til processRequest ?
Avatar billede dl Nybegynder
23. august 2007 - 19:43 #2
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
Avatar billede dl Nybegynder
23. august 2007 - 19:43 #3
Ved denne kode, som netbean har lavet .

Som du kan se, så kunne jeg ikke lige huske om det var parameter eller attribute .. så jeg testede på det hele.
Avatar billede arne_v Ekspert
23. august 2007 - 20:00 #4
Try delete:

enctype="text/plain"

in the form.
Avatar billede dl Nybegynder
23. august 2007 - 20:07 #5
<form name="TestForm" action="NewServlet" method="POST"> 
        <input type="text" name="txtNavn" value="??" size="20" />
        <input type="submit" value="OK" name="btnOK" />
    </form>


Thx, an answar, it did the trick.
Avatar billede arne_v Ekspert
23. august 2007 - 20:25 #6
svar
Avatar billede dl Nybegynder
23. august 2007 - 21:55 #7
Sådan.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester