我正在尝试从数据库加载数据并插入到下拉列表中: 我无法检索数据
我的javascript看起来像:
<script type="text/javascript">
function getEmployee(row)
{
// $('#brand'+row)[0].options.length = 0;
var xmlhttp;
if (window.XMLHttpRequest)
{//code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var status=xmlhttp.responseText;
var x = document.getElementById("employee"+row);
var option = document.createElement("option");
option.text = "";
x.add(option);
var temp = status.split("#");
for(var i=1;i<temp.length;i++)
{
var temp_val=temp[i].split("//");
$('#employee'+row).append( new Option(temp_val[1],temp_val[0]));
}
}
}
xmlhttp.open("GET","LoadEmployee",true);
xmlhttp.send();
}
function loadEmployee()
{
for(var i=1;i<=10;i++)
{
getEmployee(i)
}
}
我正在尝试将数据加载到同一个jsp中的下拉列表中:
<%
int i=1;
{%>
<div class="form-group">
<label class="control-label">
Employees <span class="symbol required"></span>
</label>
<select class="form-control" name="employee<%=i %>" path="employee<%=i %>" >
</select>
</div>
<%} %>
我的控制器如下:
@RequestMapping(value = "/LoadEmployee", method = RequestMethod.GET) public void LoadEmployee(HttpServletRequest request, HttpServletResponse response) throws SQLException, IllegalStateException, IOException
{
System.out.println("In Load Brands");
String employee=homeDao.getEmployee();
response.setContentType("text/plain");
response.getWriter().write(employee);
}
我的实施如下:
公共类Homeimpl实现HomeDao {
@Override
public String getEmployee() {
String models="";
String query = "SELECT member_name FROM mobike.mst_memberdetail;";
System.out.println(query);
try
{
ResultSet rs = null;
Statement st = null;
Connection con = com.mobike.datasource.DbConnection.getDataSource();
st = con.createStatement();
rs = st.executeQuery(query);
rs.close();
st.close();
con.close();
}
catch (Exception e){System.out.println(e);}
return models;
}
答案 0 :(得分:1)
我认为您想要考虑应用程序的体系结构,以及每个部分应该负责的内容。
MVC中的V代表View。您的控制器方法返回void,因此根本不返回视图。相反,您直接写入响应输出流。
JSP是一个视图文件。您的控制器方法应该向模型添加内容(在您的情况下,Employee
),然后返回逻辑视图名称。视图(JSP)将有占位符来解析模型属性(例如:$ {employee})
话虽如此,以上情况适用于传统的MVC应用程序,它基于整页请求/响应。
你正在使用javascript(一些非常老派的JS btw,你考虑过使用像angular或甚至jquery这样的库来为你简化这个吗?)。无论如何,你的JS似乎正在发出ajax请求来获取员工数据
考虑到这一点,您的第一页html可以在没有Spring MVC控制器方法的情况下加载到浏览器中。它可以是带有js的简单静态html文件(但理想情况下,js本身就是一个单独的静态文件)
当js提出ajax请求时,您只需要它返回员工representation
- 您不需要完整的jsp视图。然后,您的js回调可以将返回的数据插入到DOM中
我对上面的短语representation
的使用是有意的,因为我在这里开始描述的更符合RESTful架构(尽管REST不仅仅是返回对象的表示)
我猜你是相当新的并且可能正在接受一两个教程?我认为你最好的选择是阅读这个主题,了解不同组件的作用,并找到更新的教程。