MVC Web应用程序的设置

时间:2018-11-18 17:28:08

标签: javascript jsp web web-applications

我是网络应用程序的新手。

我正在按照Model-View-Controller模式创建一个Web应用程序。 我有MySQL数据库(模型),jsp页面(视图)和DAO(控制器)。

如何从数据库中获取数据并使用该名称动态创建表?我必须在JavaScript中使用JSP scriptlet吗?我读到不建议这样做。

2 个答案:

答案 0 :(得分:0)

一种实现方法是在模型中有一个代表数据库行的类,并具有一种读取行的方法。然后,您可以拥有一个Get方法,该方法返回对象列表...类似...

public class MyItem
{
    public string Id { get; set; }
    public string MyProperty { get; set; }

    public List<MyItem> Get()
    {
        List<MyItem> items = new List<MyItem>();

        try
        {
            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                using (SqlCommand select = new SqlCommand())
                {
                    select.CommandText = @"select bla bla bla from bla whete MyProperty=@MyProperty";

                    select.Parameters.AddWithValue("@MyProperty", this.MyProperty);

                    select.Connection = connection;
                    connection.Open();

                    using (SqlDataReader reader = select.ExecuteReader())
                    {
                        DataTable dataTable = new DataTable("ResultSet");
                        dataTable.Load(reader);

                        if ((dataTable != null) && (dataTable.Rows != null) && (dataTable.Rows.Count > 0))
                        {
                            foreach (DataRow row in dataTable.Rows)
                            {
                                MyItem item = new MyItem();
                                item.FromRow(row);
                                items.Add();
                            }
                        }
                    }
                }
            }
        }
        catch (Exception)
        {
            log here
            throw;
        }
        return items;
    }
    public void FromRow(DataRow row)
    {
        Id = row["Id"].ToString();
        ...
    }
}

然后,您可以在控制器中执行以下操作……

[Authorize(Roles = "...")]
public IActionResult GetMyItems(string id)
{
    MyItem item = new MyItem() { Id = id };
    var items = item.Get();

    return items;
}

然后,您应该可以在视图中使用Model属性进行访问。

答案 1 :(得分:0)

假设您要使用独立的客户端应用程序将其公开为JSON API,如注释中所述。您需要向服务器发出AJAX HTTP请求。您可以为此使用很多不同的库,例如jQuery。


获取数据

首先使用jQuery.get从Web服务器请求数据:

$.get( "ajax/test.html", function( data ) {
  $( ".result" ).html( data );
  alert( "Load was performed." );
}); 

有关详细参考,请查看jQuery documentation中的教程。

呈现HTML中的数据

有几种使用jQuery的方法,我推荐以下一些答案作为参考: