webForumDet fria alternativet

anropa metod från ett form tag?

2 svar · 270 visningar · startad av jme

jmeMedlem sedan maj 20012 237 inlägg
#1

Hej!

Om jag har en metod:

<%!
sendMessage()
{
...
}
%>

hur anropar jag metoden inifrån ett form-tag?

typ:

<form name="bla" method="post" action=sendMessage()>
...
</form>

Fråga 2:

variabeln out är ju fördeklarerad, eller den kommer man åt i varje .jsp-sida

Men om jag försöker skriva out.println("hej") inuti ovanstående metod så får jag

cannot resolve symbol:

variable out

ViktorMedlem sedan aug. 20021 752 inlägg
#2

Nu blir det ett kort svar med mycket kod :)

package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import org.apache.jasper.runtime.*;

public class test_jsp extends HttpJspBase {

  private static java.util.Vector _jspx_includes;

  public java.util.List getIncludes() {
    return _jspx_includes;
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    JspFactory _jspxFactory = null;
    javax.servlet.jsp.PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;

    try {
      _jspxFactory = JspFactory.getDefaultFactory();
      response.setContentType("text/html;charset=ISO-8859-1");
      pageContext = _jspxFactory.getPageContext(this, request, response,
                        null, true, 8192, true);
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

sendMessage()
{
        out.println("KalleAnka");
}

      out.write(" \r\n");
      out.print(sendMessage());
    } catch (Throwable t) {
      out = _jspx_out;
      if (out != null && out.getBufferSize() != 0)
        out.clearBuffer();
      if (pageContext != null) pageContext.handlePageException(t);
    } finally {
      if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
    }
  }
}

Detta är den servlet som har genererats av Tomcat utifrån din jsp. All "vanlig" jsp kod hamnar i "_jspService" funktionen medans egen definerade funktioner hamnar som egna funktioner. out finns bara deklarerad i "_jspService" funktionen, det är därför du inte når den från din sendMessage funktion.

/Viktor

jmeMedlem sedan maj 20012 237 inlägg
#3

Tack för svaret, Viktor! :)
Har ännu inte kört din kod men skall göra det strax.

Jag trodde att out var av typen PrintWriter...
Men det var JspWriter...

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)