如何在参数化请求中生成多个列?

时间:2015-05-05 08:43:22

标签: javascript jquery html

我必须在我的html表中添加一行,但它不起作用,这是我的代码和muy表单。     我想知道如何在modelattribute中存储多个元素,以及如何使用带有此请求的正则表达式来创建多个列?你能帮帮我吗

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Creating database: Handing Form Submission</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" ></meta>
</head>
<body>
    <h1>Form</h1>
    <form action="#" th:action="@{/test}" th:object="${db}" method="post">
        <p>Database_Name: <input type="text" th:field="*{Database_Name}" /></p>
        <p>Table_Name: <input type="text" th:field="*{Table_Name}" /></p>
        <div class="form_container">

    <h3>Création de la base de données</h3>

    <table id="table" cellspacing="0" cellpadding="0">
        <thead>
            <tr>
                <th>field</th>
                <th>Size</th>
                <th>Type</th>
                <th>null</th>

                <th>&nbsp;</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><input id="field" type="text" name="field" maxlength="255"  required="required"/></td>

                <td><input id="Size" type="text"  name="Size" maxlength="255" required="required"/></td>
                <td><SELECT id="Type" name="Type">
        <OPTION VALUE="varchar">varchar</OPTION>
        <OPTION VALUE="int">int</OPTION>
        <OPTION VALUE="text">long</OPTION>
        <OPTION VALUE="float">float</OPTION>
        <OPTION VALUE="double">double</OPTION>
        <OPTION VALUE="Date">Date</OPTION>
        <OPTION VALUE="Time">Time</OPTION>
        <OPTION VALUE="Year">Year</OPTION>
        <OPTION VALUE="Real">Real</OPTION>
        <OPTION VALUE="Boolean">Boolean</OPTION>
        <OPTION VALUE="longText">longText</OPTION>
        <OPTION VALUE="Binary">Binary</OPTION>
    </SELECT></td>

     <td><SELECT id="null" name="nullabilité">
        <OPTION VALUE="null">null</OPTION>
        <OPTION VALUE="not null">not null</OPTION>

        </SELECT></td>
                <td>&nbsp;</td>
            </tr>
        </tbody>
    </table>
 <!--    <input type="button" value="Add Row" id="add_ExpenseRow.ID" /> -->
    <div id="myDynamicTable">
<input type="button" value="Add Row" id="add" />

</div>
</div> <!-- END form_container -->

        <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
    </form>
    <script src="jquery.js"></script>
   <script>
   $("#add").click(function(){
       $('#table tbody').append('<tr><td>'+$('#field').val()+'</td><td>'+$('#Size').val()+'</td><td>'+$('#Type').val()+'</td><td>'+$('#null').val()+'</td></tr>');     
   })
   </script>
</body>
</html>




package demo;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.springframework.boot.autoconfigure.web.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;



@Controller
class TestController implements ErrorController{

    String login="root";
    String pwd="";


    private static final String PATH = "/error";
// En cas d'érreur
        @RequestMapping(value = PATH)
        public String error() {
            return "Error";
        }
        @Override
        public String getErrorPath() {
            return PATH;
        }
       // Afficher le formulaire de création de base de données
    @RequestMapping(value="/test", method=RequestMethod.GET)
    public String test(Model model){
        try {

        DetailsDatabase db=new DetailsDatabase();

        model.addAttribute("db", new DetailsDatabase());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "hello";
    }
    //Créer la base de données (submit)
      @RequestMapping(value="/test", method=RequestMethod.POST)
        public String DatabaseSubmit(@ModelAttribute DetailsDatabase db, Model model) {
            model.addAttribute("db",db);

try {
    Class.forName("com.mysql.jdbc.Driver");
    // on commence par se connecter à la base factice
     String url="jdbc:mysql://localhost:3306";
        Connection conn = DriverManager.getConnection(url,login,pwd);

    // on crée la base et on récupère une Connection
        Statement ps1=conn.createStatement();
        ps1.execute("CREATE DATABASE " +db.getDatabase_Name());
        ps1.close();
         url="jdbc:mysql://localhost:3306/"+db.getDatabase_Name();
       conn = DriverManager.getConnection(url,login,pwd);
        Statement ps2=conn.createStatement();
          ps2.execute("CREATE TABLE "  +db.getTable_Name() +"(" +db.getField() +" " +db.getType()+"("+db.getSize()+")" +db.getNullabilité()+");");
         ps2.close();
    // on peut finalement fermer notre Connection conn qui ne nous sers plus à rien
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();

}
return "result";
        }
public static boolean existe(Connection conn, String nomTable)
        throws SQLException{
boolean existe;
DatabaseMetaData dmd = conn.getMetaData();
ResultSet tables = dmd.getTables(conn.getCatalog(),null,nomTable,null);
existe = tables.next();
tables.close();
return existe;  
}


}






package demo;

public class DetailsDatabase {

    private String Database_Name;
    private String Table_Name;
    private String  field;
    private int size;
    private String type;
   private String nullabilité;

    //private boolean Auto_Increment;
    public String getDatabase_Name() {
        return Database_Name;
    }
    public void setDatabase_Name(String database_Name) {
        Database_Name = database_Name;
    }
    public String getTable_Name() {
        return Table_Name;
    }
    public void setTable_Name(String table_Name) {
        Table_Name = table_Name;
    }
    public String getField() {
        return field;
    }
    public void setField(String field) {
        this.field = field;
    }
    public int getSize() {
        return size;
    }
    public void setSize(int size) {
        this.size = size;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getNullabilité() {
        return nullabilité;
    }
    public void setNullabilité(String nullabilité) {
        this.nullabilité = nullabilité;
    }

    @Override
    public String toString() {
        return "DetailsDatabase [Database_Name=" + Database_Name
                + ", Table_Name=" + Table_Name + ", field=" + field + ", size="
                + size + ", type=" + type + ", nullabilité=" + nullabilité
                + "]";
    }



}

0 个答案:

没有答案