【问题标题】:How to know which button is clicked on jsp [duplicate]如何知道在jsp上单击了哪个按钮[重复]
【发布时间】:2014-01-03 11:23:40
【问题描述】:

带有两个按钮的Jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <body style="background-color:black;">


<p>
<p><input type="button" name="good" value="Pen" onclick="location.href='hello';"> </p>
<p><input type="button" name="good" value="Paper" onclick="location.href='hello';">
</p>

</body> 
</html>

这是小服务程序

package pack.exp;
import java.io.IOException;
import javax.servlet.http.*;

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.EntityNotFoundException;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;


@SuppressWarnings("serial")
public class HelloServlet extends HttpServlet 
{

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws 
    IOException 
{
    String val=req.getParameter("good");  
    if("Pen".equals(val))
    {  
        resp.setContentType("text/plain");
        resp.getWriter().println("Pen was clicked" ); 
    }  
    else if("Paper".equals(val))
    {
        resp.setContentType("text/plain");
        resp.getWriter().println("Paper was clicked"); 
    }  

}
 }

我的代码在单击按钮时没有给出正确的输出。我希望当我单击 Pen 时它应该输入 if() 并打印文本,我希望纸张按钮也一样。

【问题讨论】:

    标签: java google-app-engine jsp servlets


    【解决方案1】:

    添加两个隐藏字段。

    <form id="my form" >
     <input type="hidden" name="myPen" />
     <input type="hidden" name="myPaper" />
     <input type="button" name="good" value="pen" on click="{document.myform.mypen.value=this.value;location.href='hello';}"
     <input type="button" name="good" value="paper" on click=" {document. myform. mypaper.value=this.value;location. href='hello';}" />
    </form>
    

    在 Servlet 中

      String val=req.getParameter('mypen'); 
      String val1=req.getParameter("mypaper");
    

    有时只有一个值是null。您可以使用null check 执行此操作。

    【讨论】:

      【解决方案2】:

      使用 jQuery 来完成你的任务。

      将您的 html 代码更改为这些代码行。

      <form method="post" action="#" name="Form" id="Form" >
      <input type="button" value="one" id="One"/> 
      <input type="button" value="two" id="Two"/>
      </form>
      

      并在您的脚本中添加这些行

      $('input:button').click(function() {
       alert($(this).val());
       var value=$(this).val();
       var url='hello?good=';
       url+=value;
       $("#Form").attr("action",url); 
       $("#Form").submit();   
      });
      

      您可以使用 jQuery 1.7.1 及更高版本。

      【讨论】:

      • 嘿,我对 JQuery 一无所知。你能用html解释一下吗?
      • 如果只想使用html,则需要使用单选按钮。我不确定是否有其他方法。 jquery 很容易使用。您只需将我的 jquery 代码复制粘贴到 html 的脚本标记中。作为参考,您可以参考一个示例 jquery 示例。 jquery example Click Me点击此链接。
      【解决方案3】:

      将按钮的值编码为按钮的名称。

      在 HTML 中:

      <p><input type="button" name="good:Pen" onclick="location.href='hello';"> </p>
      <p><input type="button" name="good:Paper" onclick="location.href='hello';">
      

      在 servlet 中:遍历所有参数,查找 startsWith("good") 的参数,如果是,则子跟踪前缀 good:。如果您的页面中没有其他提交按钮,您只需将按钮命名为 PenPaper 并检查这些参数是否存在。此任务不需要 javascript。

      【讨论】:

        【解决方案4】:

        用jsp写这段代码,对你有帮助

         <html>
         <body style="background-color:black;">
        
         <p><form method="post" action="hello">
         <p><input type="submit" name="good" value="Pen" > </p>
         <p><input type="submit" name="good" value="Paper" >
         </p></form>
        
         </body> 
         </html>
        

        【讨论】:

          猜你喜欢
          • 2017-06-04
          • 1970-01-01
          • 2021-05-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多