【问题标题】:How to obtain the contents of a td at the servlet如何在 servlet 中获取 td 的内容
【发布时间】:2014-03-19 15:54:51
【问题描述】:

我在 jsp 中创建了一个表,我想在 servlet 中获取一个 td 的内容。 这是我想要获取它的内容的表的 td:

<td  align="center" title="tdun" id="cat"> <%= categoryname %> </td>  

我使用隐藏的输入类型:

<td  align="center" title="tdun" id="cat"> <%= categoryname %>
                                                                                <input type="hidden" name="hiddenfield1" value="<%= categoryname %>"/></td>

这里是servlet代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        // TODO Auto-generated method stub  

        try {  

              Class.forName("org.postgresql.Driver");  
              System.out.println("Driver O.K.");  

              String url = "jdbc:postgresql://localhost:5432/SQLtest";  
              String user = "postgres";  
              String passwd = "DataBase";  

              Connection conn = DriverManager.getConnection(url, user, passwd);  
              System.out.println("Connexion effective !");     
              String name = request.getParameter("hiddenfield1");  
              PreparedStatement pre = conn.prepareStatement("delete from category where category_name=?");  
                pre.setString(1, name);  
                pre.executeUpdate();    
                pre.close();  
                conn.close();  


        }catch (Exception e)  
        {  

              e.printStackTrace();  
            }

出现异常:

org.postgresql.util.PSQLException: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0.  
    at org.postgresql.core.v3.SimpleParameterList.bind(SimpleParameterList.java:56)  
    at org.postgresql.core.v3.SimpleParameterList.setNull(SimpleParameterList.java:134)  
    at org.postgresql.jdbc2.AbstractJdbc2Statement.setNull(AbstractJdbc2Statement.java:1213)  
    at org.postgresql.jdbc3.AbstractJdbc3Statement.setNull(AbstractJdbc3Statement.java:1490)  
    at org.postgresql.jdbc4.AbstractJdbc4Statement.setNull(AbstractJdbc4Statement.java:84)  
    at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1872)  
    at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:36)  
    at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:47)  
    at com.pack.servlet.Delete.doGet(Delete.java:48)  
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)  
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)  
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)  
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)  
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)  
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)  
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)  
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)  
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)  
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)  
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)  
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)  
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)  
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441)  
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430)  
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)  
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)  
    at java.lang.Thread.run(Unknown Source)  

使用隐藏输入是否正确? 我的代码有什么问题?

【问题讨论】:

  • &lt;input&gt; 是否在提交的表单中?
  • 不在表单中
  • 那么它不会被发送到服务器,除非你在请求中手动添加...
  • 那么在处理下面的请求时,你期望怎么看呢?
  • 使用 ajax 或使用表单发送...别无他法

标签: java html postgresql jsp servlets


【解决方案1】:

你应该像这样包含在你的jsp文件中

<form action="ServletName" method="post">
// your codes 
<td  align="center" name="test" title="tdun" id="cat"><input type="text" name="test"   value="<%= categoryname %>"/> </td> 
</form>

现在在您的 servlet 中,即 ServletName

String name=request.getParmeter("test");
out.println(name);
//this will print the value which you can insert into postgresql

【讨论】:

  • td 标签不包含名称和值属性
  • 我使用 name 作为标识符,后来被 ServletName 调用
  • 是的,我明白你想要什么,但 td 不接受 name 属性。出现警告消息:未定义的属性名称(名称)。
  • 现在它可以工作了,我已经将它包含在输入标签中,所以现在一切看起来都很好
  • 对不起,它不起作用 :/ 同样,
    而不是
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
  • 2018-01-25
  • 1970-01-01
相关资源
最近更新 更多