Jsp窗体Jsp调用onClick方法

新手上路,请多包涵

我希望在 JSP onClick 中调用一个方法,该方法在 scriptlet 内的同一个 JSP 上。

我应该如何存档?

 <%@ page import="java.io.*,java.lang.*,java.util.*,java.net.*,java.util.*,java.text.*"%>
<%@ page import="javax.activation.*,javax.mail.*,org.apache.commons.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*"%>

<%!
    public String sendMail(String to, String sub, String msg) {
        String res = null;
        System.out.println("HI");
        return res;
    }%>

<html>
<head>
<title>Send Email using JSP</title>
</head>
<body>
    <center>
        <h1>Send Email using JSP</h1>
    </center>
    <form>
        <label>Email To</label><br />
            <input type="text" name="to" /><br />
        <label>Subject</label><br />
            <input type="text" name="sub" /><br />
        <label for="body">Message</label><br />
            <input type="text" name="msg" /><br />
        <input type="submit" onClick="sendMail( to, sub, msg )"/>
    </form>
</body>
</html>

笔记

方法名称是 “sendMail” ,它在提交按钮上调用我只想在 JSP 中完成整个代码。

原文由 Abhishek Patil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 915
2 个回答

这就是我最终做的

    <%@ page import= "java.io.*,java.lang.*,java.util.*,java.net.*,java.util.*,java.text.*"%>
    <%@ page import="javax.activation.*,javax.mail.*,org.apache.commons.*"%>
    <%@ page import="javax.servlet.http.*,javax.servlet.*"%>

    <%!
          public String sendMail(String to, String sub, String msg) {
            String res = null;
            System.out.println("HI");
            return res;
         }
     %>

    <%
    String a = request.getParameter("to");
    if(a != null){
        sendMail(request.getParameter("to"),request.getParameter("sub"),request.getParameter("msg"));
    }
    %>
    <html>
    <head>
    <title>Send Email using JSP</title>
    </head>
    <body><center>
        <form action="#" method="post">
            <label>Email To</label><br />
                <input type="text" name="to" /><br /> <br />
            <label>Subject</label><br />
                <input type="text" name="sub" /><br /> <br />
            <label for="body">Message</label><br />
                <input type="text" name="msg" /><br /> <br />
            <input type="submit"/>
        </form>
    </center></body>
    </html>

action="#" 重新加载页面,并且有一个 if 如果参数不为空则调用所需方法的条件(请记住,默认情况下第一次调用参数将是无效的 )。

原文由 Abhishek Patil 发布,翻译遵循 CC BY-SA 3.0 许可协议

onclick 事件在用户单击元素时发生。该属性具有调用JS函数的能力(前端)

在你的情况下,你想调用一个 JAVA 函数(服务器端),所以最好的方法是将 java 代码移动到一个 servlet 并使用它。

无论如何,如果你想在jsp中保留JAVA功能,你可以通过ajax以这种方式做到这一点

<script type="text/javascript">
        $(document).ready(function() {
            $('#sendMailBtn').click(function (){
                $.ajax({
                    type: "post",
                    url: "/path",
                    data: "email=" + $('#email').val() + "&subject="+$('#subject').val() + "&msg=" + $('#msg').val(),
                    success: function(msg){
                        //
                    }
                });
            });
        });
 </script>

AJAX 是开发人员的梦想,因为您可以

在不重新加载页面的情况下更新网页 从服务器请求数据 - 在页面加载后 从服务器接收数据 - 在页面加载后 将数据发送到服务器 - 在后台

在此处查看完整代码

<%@ page import="java.io.*,java.lang.*,java.util.*,java.net.*,java.util.*,java.text.*"%>
<%@ page import="javax.activation.*,javax.mail.*,org.apache.commons.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*"%>

<%!
    public String sendMail(String to, String sub, String msg) {
        String res = null;
        System.out.println("HI");
        return res;
    }
%>

<html>
    <head>
        <title>Send Email using JSP</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    </head>

    <body>
        <center>
            <h1>Send Email using JSP</h1>
        </center>
        <form>
            <label>Email To</label><br />
            <input id="email" type="text" name="to" /><br />
            <label>Subject</label><br />
            <input id="subject" type="text" name="sub" /><br />
            <label for="body">Message</label><br />
            <input id="msg" type="text" name="msg" /><br />
            <input id="sendMailBtn" type="submit" />
        </form>
    </body>

    <script type="text/javascript">
        $(document).ready(function() {
            $('#sendMailBtn').click(function (){
                $.ajax({
                    type: "post",
                    url: "/path",
                    data: "email=" + $('#email').val() + "&subject="+$('#subject').val() + "&msg=" + $('#msg').val(),
                    success: function(msg){
                        //
                    }
                });
            });
        });
    </script>
</html>

欲了解更多信息检查

AJAX简介: http ://www.w3schools.com/xml/ajax_intro.asp onclick 事件: http ://www.w3schools.com/tags/ev_onclick.asp

原文由 Jad Chahine 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题