2016-06-09 2 views
1

Ich habe .jsp Seite, wo ich einige Daten von DB anzeigen (Tabelle seria [ID, Name, Beschreibung, Foto]). Wie sende ich die ID an das Servlet, wenn der Benutzer auf einen Bereich mit Foto und Text klickt? Jetzt, wo auch immer ich klicke, bekomme Servlet seria_id = 1. Screenshot von Website http://joxi.ru/krDLaDYS07pwNr Meine Form hier->Wie kann ich Daten onclick vom Formular in jsp-Seite an Servlet senden?

<form id="myform" action="/seria" method="post"> 
    <%Iterator itr;%> 
    <% LinkedList<Seria> data = (LinkedList<Seria>) request.getAttribute("data"); 
    Seria seria; 
    for (itr=data.iterator(); itr.hasNext();) { 
     seria = (Seria) itr.next(); 
    %> 
    <input type="hidden" name="seria_id" value=<%=seria.getId()%>> 
    <table onclick="document.getElementById('myform').submit();"> 
     <tr> 
      <td colspan="2"> 
       <h3 align="center">Серия &laquo;<%=seria.getName()%>&raquo;</h3> 
      </td> 
     </tr> 
     <tr> 
      <td width="50%"> 
        <img src="/img/<%=seria.getPhoto()%>" width="60%" alt="cars" hspace="20%"> 
      </td> 
      <td> 
       <%=seria.getDescription()%> 
      </td> 
     </tr> 
    </table> 
    <hr> 
    <%}%> 
</form> 

web.xml

<servlet> 
    <servlet-name>SeriaServlet</servlet-name> 
    <servlet-class>mypackage.SeriaServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>SeriaServlet</servlet-name> 
    <url-pattern>/seria</url-pattern> 
</servlet-mapping> 

Servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    Enumeration en=request.getParameterNames(); 
    while(en.hasMoreElements()) 
    { 
     Object objOri=en.nextElement(); 
     String param=(String)objOri; 
     String value=request.getParameter(param); 
     System.out.println("Parameter Name is '"+param+"' and Parameter Value is '"+value+"'"); 
    } 
} 

Immer druckt „Parametername ist 'seria_id' und Parameter Wert '1' " Projekt auf github om der Moment der Frage. https://github.com/sasha361322/jsp-servlet/commit/aaf869ccde54d53e16f964a6db9786c27def8eab

+0

Scheck roytuts.com/xchart-using-ajax-jsp-and-servlet/ & roytuts.com/highchart-using-ajax-jsp-and-servlet/ – user3470953

Antwort

0

Wenn Sie den Wert durch

getParameter(name); 

erhalten wollen, dann sollten Sie die Werte URL also in Ihrem Fall Aktion URL senden ist/seria

So ermitteln Sie den Wert als

senden
/seria?parmName1=ParmaValue1&parmName2=ParmaValue2 
0

Ich bekomme die Lösung. Statt einer Form mache ich nun für jede seria eine.

<%Iterator itr;%> 
          <% LinkedList<Seria> data = (LinkedList<Seria>) request.getAttribute("data"); 
          Seria seria; 
          for (itr=data.iterator(); itr.hasNext();) { 
           seria = (Seria) itr.next(); 
          %> 
          <form id="<%=seria.getId()%>" action="/seria" method="post"> 
           <input type="hidden" name="seria_id" value=<%=seria.getId()%>> 
           <table onclick="document.getElementById('<%=seria.getId()%>').submit();"> 
            <tr> 
             <td colspan="2"> 
              <h3 align="center">Серия &laquo;<%=seria.getName()%>&raquo;</h3> 
             </td> 
            </tr> 
            <tr> 
             <td width="50%"> 
               <img src="/img/<%=seria.getPhoto()%>" width="60%" alt="cars" hspace="20%"> 
             </td> 
             <td> 
              <%=seria.getDescription()%> 
             </td> 
            </tr> 
           </table> 
          </form> 
          <hr> 
          <%}%> 
Verwandte Themen