我想在下拉列表中显示来自数据库的值。代码如下<form>
:
<aui:select id="empName" name="empName">
<%
Employee employee;
Employee newEmployee = new EmployeeImpl();
int totalEmployees = EmployeeLocalServiceUtil.getEmployeesCount();
for(int i=0; i<totalEmployees;i++) {
%>
<aui:option name = "opt" value ='<%=String.valueOf(newEmployee.getEmpFname())%>' />
System.out.println("newEmployee.getFname string value in loop: " +newEmployee.getEmpFname());
<%
}
%>
</aui:select>
它显示了一个很大的空列表。
如何从数据库中获取下拉列表中的值?
答案 0 :(得分:3)
我可以从您提供的代码中了解以下内容:
Employee newEmployee = new EmployeeImpl();
int totalEmployees = EmployeeLocalServiceUtil.getEmployeesCount();
此代码位于for
循环之前,因此您所做的只是获取total-count
而不是Employees
的实际列表。
这里是for-loop:
<aui:option name = "opt" value ='<%=String.valueOf(newEmployee.getEmpFname())%>' />
您只是通过代码""
获取空字符串null
或newEmployee.getEmpFname()
,因为您的newEmployee
对象不是来自数据库,而是在JSP本身中创建的因此有一个很大的空列表: - )
我认为您还需要从数据库返回List<Employee>
totalEmployees
(总计数)而不是创建新实例,然后只在该实例上调用.getEmpFname()
。
答案 1 :(得分:-1)
enter code here
<aui:select id="empName" name="empName">
<%
int totalEmployees = EmployeeLocalServiceUtil.getEmployeesCount();
List<Employee> list= EmployeeLocalServiceUtil.getEmployees(0, totalEmployees );
for(Employee employeeList: list)
{
%>
<aui:option value="<%=employeeList.getEmployeeName()%>"><%=employeeList.getEmployeeName()%> </aui:option>
<%
System.out.println(employeeList.getEmployeeName());
%>
<%
}
%>
</aui:select>