调用方法onClick Jsp表单Jsp

abh*_*314 4 java jsp scriptlet

我希望在Jsp onClick中调用一个方法,该方法在同一个Jsp里面的scriptlet上.

我应该如何存档?

<%@ 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>
Run Code Online (Sandbox Code Playgroud)

注意:方法名称是"sendMail",它在提交按钮上调用我想只在Jsp中执行整个代码.

Jad*_*ine 5

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>
Run Code Online (Sandbox Code Playgroud)

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>
    
    Run Code Online (Sandbox Code Playgroud)

    有关更多信息,请检查

  • AJAX简介:http://www.w3schools.com/xml/ajax_intro.asp
  • onclick活动:http://www.w3schools.com/tags/ev_onclick.asp