我是网络应用程序的新手。
我正在按照Model-View-Controller模式创建一个Web应用程序。 我有MySQL数据库(模型),jsp页面(视图)和DAO(控制器)。
如何从数据库中获取数据并使用该名称动态创建表?我必须在JavaScript中使用JSP scriptlet吗?我读到不建议这样做。
答案 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的方法,我推荐以下一些答案作为参考: